【NumPy入門 np.dtype】 配列要素の型を確認・指定してみよう

こんにちは、インストラクターのフクロウです。

この記事ではnp.ndarrayの要素の型を確認したり、設定するためのパラメータ「dtype」を学んでいきます!

この記事の内容

  1. dtypeを使った配列要素の型の確認
  2. dtypeを使った型指定をした配列の初期化
  3. astypeを使った排列要素のキャスト変換
目次

NumPyのdtype(データ型)一覧

np.ndarrayの要素として使える主な型は以下のとおりです。

import numpy as np

dtypes = [
    np.int8,        # 符号あり  8bit 整数 
    np.int16,       # 符号あり 16bit 整数
    np.int32,       # 符号あり 32bit 整数
    np.int64,       # 符号あり 64bit 整数
    np.uint8,       # 符号なし  8bit 整数
    np.uint16,      # 符号なし 16bit 整数
    np.uint32,      # 符号なし 32bit 整数
    np.uint64,      # 符号なし 64bit 整数
    np.float16,     #  半精度 浮動小数点数
    np.float32,     #  単精度 浮動小数点数
    np.float64,     #  倍精度 浮動小数点数
    np.float128,    # 四倍精度 浮動小数点数 
    np.complex64,   # 複素数 (実数・虚数が  float32)
    np.complex128,  # 複素数 (実数・虚数が  float64)
    np.complex256,  # 複素数 (実数・虚数が float128)
    np.bool,        # 真偽値
    np.unicode,     # Unicode文字列
    np.object       # Pythonオブジェクト(へのポインタ)
]

行列計算(例えば内積)をするときに、できれば計算に使う配列のdtypeは合わせるようにしましょう。

そうでないと、意図しないキャスト変換が起こるかもしれません。

事前にdtypeなどで型をチェックしておくことをおすすめします。

ファイル(例えばCSVファイル)からデータを読み込むとき、読み込んだデータを意図したデータ型にしたい場合があります。

そんなとき、np.ndarrayを作るときにdtypeパラメータを指定しましょう!

[出力結果]

[1. 2. 3.] float16
[1. 2. 3.] float128
[1.+2.j 2.-3.j] complex64

scikit-learnでデータセットを読み込んだとき、データが既にnp.ndarrayになっているものがあります。

読み込んだ配列が意図しないデータ型になっていたならば、astypeメソッドでデータ型を変更してしまいましょう!

まとめ

この記事では、NumPyの配列の型を設定・確認するdtypeパラメータについて紹介しました。

効率的な行列計算を行うには、配列要素のデータ型を適切に設定することが大切です!

type関数では配列の要素の型まではわからないので、dtypeを適切に使いこなせるようになりましょう!

この記事を書いた人

第一言語はPythonです。
皆さんRustやりましょう。

目次