【Python】NumPyのdtypeを変更、指定する方法

  • URLをコピーしました!

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ブール型
unicodeUnicode文字列
objectPythonオブジェクト

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 を最小にすることです。

簡単にメモリ節約になるので、ぜひ覚えて活用していきましょう!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

エンジニア。20代。組み込みエンジニアとして働き始めるも、働き方や業務内容に限界を感じ、 AI,Web3エンジニアを目指して勉強中。 エンジニアとして思うことや、学んだことを発信します。

目次