NumPyの基本的な要素であるdtype属性について紹介します。
NumPyのdtypeとは
dtypeは、NumPyの配列 (ndarray)がどのような形式でメモリに格納されるのかを表しています。
dtypeを使って、メモリの使用量や、演算速度をコントロールします。
dtypeの一覧
dtypeには以下の種類があります。
データ型 | 説明 |
int | 符号あり整数型 (8bit, 16bit, 32bit, 64bit) |
uint | 符号なし整数型 (8bit, 16bit, 32bit, 64bit) |
float | 浮動小数点型 (16bit, 32bit, 64bit, 128bit) |
complex | 複素数型 (32bit, 64bit, 128bit, 256bit) |
bool | ブール型 |
unicode | Unicode文字列 |
object | Pythonオブジェクト |
dtypeを参照する方法
以下方法で、NumPyの配列であるndarrayのdtypeを確認することができます。
ndarray.dtype
これだけでndarrayのdtypeは確認できます。ひょう
実際のコードで表すと以下の通りです。
import numpy as np
ndarray = np.array([[1, 2, 3], [4, 5, 6]]) # ndarrayを作成
dtype = ndarray.dtype # ndarrayのdtypeを取得
print(dtype) # dtypeを出力
実行結果
int64
上記結果から、今回作成したndarrayのdtypeは、int型の64byteであることがわかります。
であることがわかります。
dtypeを変更(キャスト)する方法
dtypeについてわかったところで、続いてdtypeを変更(キャスト)する方法を紹介します!
dtypeを変更するには、ndarrayのメソッド astype()
を使用します
astype()
の使い方は以下の通りです。
引数には、変換したいデータ型を指定します。
つまり、int型に変更したい場合は、int
を引数に指定します!
ndarray.astype(変更したいデータ型)
続いて、サンプルコードを紹介します。
import numpy as np
i_ndarray = np.array([[1, 2, 3], [4, 5, 6]]) # int型のndarrayを作成
print(f"変換前のdtype: {i_ndarray.dtype}")
f_ndarray = i_ndarray.astype(float) # astype関数でdtypeを floatに変換
print(f"変換後のdtype: {f_ndarray.dtype}")
dtypeを指定する方法
ndarrayを作成するときに、dtypeを指定することもできます。
実際のコードで紹介します。
import numpy as np
ndarray = np.array([[1, 2, 3], [4, 5, 6]]) # デフォルトのdtypeでndarrayを作成
print(ndarray.dtype)
u_ndarray = np.array([[1, 2, 3], [4, 5, 6]], 'uint8') # uint8でndarrayを作成
print(u_ndarray.dtype)
実行結果
int64
uint8
dtypeをuint8に指定してndarrayを作成できています!
まとめ
データ分析する際は、データの量が膨大になるため、
ひとつひとつのデータのメモリの使用量を減らす必要があります。
そのときに、役立つのがdtype を最小にすることです。
簡単にメモリ節約になるので、ぜひ覚えて活用していきましょう!