import numpy as np
import matplotlib.pyplot as plt
既に出てきたように、ndarrayには様々なdtypeが存在します。
Cなどと連携するときやバイナリ入出力のときに知らないと困ると思います。
Numpyでの型とそれに対応するC言語、Fortranでの型を表でまとめると以下のようになります。
|型|説明|C言語|Fortran| |:--:|:-----:|:------:|:--------:| |int32 / uint32|符号あり/なし 32ビット整数型(4バイト)|long もしくは int|INTEGER| |int64 / uint64|符号あり/なし 64ビット整数型(8バイト)|long long int|INTEGER(8)| |float32|単精度浮動小数点数型|float|REAL もしくはREAL(4)| |float64|倍精度浮動小数点数型|double|REAL(8)| |complex64|実部・虚部それぞれ単精度|float complex|COMPLEX もしくは COMPLEX(4)| |complex128|実部・虚部それぞれ倍精度|double complex|COMPLEX(8)| |bool|真偽値(TrueとFalse)|(bool)|LOGICAL| |object|任意のPythonオブジェクト| | | |string_|固定長文字列型|char*|CHARACTER(LEN=○)| |unicode_|固定長ユニコード文字列型| | | |
ndarrayのdtypeのキャストはastypeを使います。
a = np.arange(0, 2, 0.2)
a
a.dtype
a.astype(np.int32) # 4バイト整数にキャスト
a.astype(np.complex128) # 倍精度複素数にキャスト
# 文字列を小数に変換
np.array(['1.', '-0.001', '6.823e256']).astype(np.float64)
# 要素のバイト数(倍精度浮動小数点数なので8バイト)
a.strides
# 倍精度複素数なので16バイト
a.astype(np.complex128).strides