NumPy配列の要素のデータ型 2015/05/11
ndarrayを生成すると要素のデータ型はだいたいデフォルトでfloat64という浮動小数点型になる。
np.arange
はint64という整数になる。
要素のデータ型はdtype
という属性で確認することができる。
from pprint import pprint
npdata = np.array([[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]])
print(npdata.dtype)
# 出力結果
# float64
pprint(npdata.dtype)
# 出力結果
# dtype('float64')
# 整数のPython配列でndarrayを生成すると、int64になるみたい
npdata1 = np.array([1, 2, 3])
print(npdata1.dtype)
# 出力結果
# int64
np.array
にdtype
という名前の引数を渡すことで生成するndarrayの要素型を指定できる。
npdata = np.array([[1.0, 2.0, 3.0], [11.0, 12.0, 13.0]], dtype=np.int32)
print(npdata)
# 出力結果
# [[ 1 2 3]
# [11 12 13]]
print(npdata.dtype)
# 出力結果
# int32
データ型には以下のようなものがある。
- 符号付き整数 int8, int16, int32, int64
- 符号なし整数 uint8, uint16, uint32, uint64
- 浮動小数点数 float16,float32, float64, float128
- 複素数 complex64, complex128, complex256
- 論理値 bool
型名の数字はビット数を表す。複素数は浮動小数点2つで表されるので、complex64はfloat32 2つ分に相当する。
複素数は虚部に j
というサフィックスを付けて表す。複素数はデフォルトでは complex128 になる。
ndarr1 = np.array([-1.5 + 1.0j, -0.5 - 1.0j, -0.0, 1.0j, 0.5 + 1.0j])
print(ndarr1)
# 出力結果
# [-1.5+1.j -0.5-1.j -0.0+0.j 0.0+1.j 0.5+1.j]
print(ndarr1.dtype)
# 出力結果
# complex128
print(np.abs(ndarr1))
# 出力結果
# [ 1.80277564 1.11803399 0. 1. 1.11803399]
print(np.abs(ndarr1).dtype)
# 出力結果
# float64