numpyのastypeとdtype、ndarrayのデータ型について

numpyのastypeとdtypeメソッド

numpyのメソッドであるastypeとdtypeメソッドについてメモ。

astype

astypeは、ndarrayの要素のデータ型を別のデータ型にしたndarrayを生成します。元のndarrayとは別のadarrayが生成されるので、要素を変更しても元のndarrayには影響しません。

 

dtype

dtypeは、ndarrayの要素のデータ型を返します。printで出力してあげればそのndarrayの要素のデータ型がわかります。

また、1つのndarrayの要素のデータ型は同じでなければならないため、複数のtypeが返ってくる心配はしなくてよいです。


npdata1 = np.array([1, 2, 3])
print npdata1.dtype
# 出力結果
# int64

npdata2 = npdata1.astype(np.float64)
print npdata2.dtype
# 出力結果
# float64

npdata2[0] = 10

print npdata1
# 出力結果
# [1 2 3]

print npdata2
# 出力結果
# [ 10.   2.   3.]

 

 下記の説明が分かり易かったです。

 NumPy配列の要素のデータ型の変換 | hydroculのメモ

 

 

 ついでに、下記もメモしておきます。

ndarrayのデータ型について

上述のように、ndarrayの要素のデータ型は統一されています。

しかし、ndarrayを生成する際にデータ型の明記は不要で、生成時にプログラム側で型を判別してdtypeに格納してくれます。

 

np.array([1,2,3]).dtype
dtype('int64')

np.array([1.2, -2, 0]).dtype
dtype('float64')

 

という感じです。