NumPy のエンコード関数

PythonBeginner
オンラインで実践に進む

はじめに

NumPy は、配列を扱うために使われる人気のある Python ライブラリです。NumPy のサブモジュールの 1 つは、char モジュールで、NumPy 配列に適用できるいくつかの文字列操作を提供します。この実験チュートリアルでは、NumPy の char モジュールのencode()関数について説明します。この関数を使って与えられた入力文字列をエンコードする方法を学びます。例を使ってencode()関数の構文、パラメータ、戻り値について説明します。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替えて、Jupyter Notebook を使って練習します。

時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決します。

NumPy ライブラリをインポートする

まず、encode()関数を使用するために必要な NumPy ライブラリをインポートします。NumPy をインポートするためのコードブロックは次のとおりです。

import numpy as np

異なるエンコード方式で encode() 関数を使用する

ここでは、2 つの異なるエンコード方式 'cp037' と 'utf-8' で encode() 関数を使用します。このために、まず文字列の配列を定義します。

a = ['aAaAaA',' aA  ', 'abBABba', 'dffgs', 'ttsred']

エンコード方式 'cp037' を使用する場合

入力配列とエンコードタイプをパラメータとして渡すことで、エンコード方式 'cp037' で encode() 関数を使用します。次がコードブロックです。

x = np.char.encode(a, encoding='cp037', errors=None)

上記のコードブロックは、入力配列 a を読み取り、'cp037' エンコード方式でエンコードします。エンコードされた文字列は変数 x に格納されます。エラーハンドリングメカニズムが指定されていないため、errors パラメータは None に設定されています。次に、入力配列とエンコードされた文字列を次のように出力します。

print("Input is:")
print(a)

print("Encoded String is:")
print(x)

出力:

Input is:
['aAaAaA',' aA  ', 'abBABba', 'dffgs', 'ttsred']
Encoded String is:
[b'\x81\xc1\x81\xc1\x81\xc1' b'@@\x81\xc1@@'
 b'\x81\x82\xc2\xc1\xc2\x82\x81' b'\x84\x86\x86\x87\xa2'
 b'\xa3\xa3\xa2\x99\x85\x84']

エンコード方式 'utf-8' を使用する場合

入力配列とエンコードタイプをパラメータとして渡すことで、エンコード方式 'utf-8' で encode() 関数を使用します。次がコードブロックです。

x = np.char.encode(a, encoding='utf-8', errors=None)

上記のコードブロックは、入力配列 a を読み取り、'utf-8' エンコード方式でエンコードします。エンコードされた文字列は変数 x に格納されます。エラーハンドリングメカニズムが指定されていないため、errors パラメータは None に設定されています。次に、入力配列とエンコードされた文字列を次のように出力します。

print("Input is:")
print(a)

print("Encoded String is:")
print(x)

出力:

Input is:
['aAaAaA',' aA  ', 'abBABba', 'dffgs', 'ttsred']
Encoded String is:
[b'aAaAaA' b' aA ' b'abBABba' b'dffgs' b'ttsred']

まとめ

この実験では、NumPy ライブラリの char モジュールのencode()関数について学びました。この関数の構文と返り値を使った使い方について説明しました。また、'cp037'や'utf-8'などの異なるエンコード方式についても説明し、例を使ってその使い方を示しました。encode()関数は、入力文字列を要素ごとにエンコードし、エンコードされた文字列を返します。