NumPyにおける要素のデータ型dtypeの種類と指定方法2017-06-24NumPyにおける要素のデータ型dtypeの種類と指定方法NumPyの多次元配列ndarrayには、データ型を表現するdtypeというプロパティがあります。このdtypeを指定することで、要素のデータ型を指定して確保するメモリ量を調節することができます。本記事では、dtypeに焦点を当てながらNumPyで指定できるdtypeの種類と指定方法、そして内部でdtypeが活用される仕組みについて解説していきます。dtypeが必要な理由NumPyは基本的には、大量のデータ操作を高速に実行できるように内部ではCで実装されています。Python自体はそれほど高速な言語ではないため、行列演算の操作やデータの扱いはCから行われます。NumPy配列のデータ型を指定することでPythonからでもメモリ効率と実行効率の良いコードを実装することができます。データ型まずは、NumPyで使うことのできるデータ型についてまとめます。NumPyのデータ型を型で分類すると整数のint、浮動小数のfloat、複素数のcomplex、符号なしの整数のuint、真偽値のboolになります。型ごとに1要素あたりに確保するデータサイズをビットで指定することができます。データ型ごとに分類すると以下の通りになります。TrueかFalseで表される、真偽値。データ量としては8ビットまずは、それぞれのデータ型でどのような表記がされるのかを確かめてみましょう。NumPyのndarrayのdtypeは、arr.dtypeのようにして知ることができます。何も指定しない状態で配列を生成。ビット数を下げてみる。floatやintのデフォルトのビット数は64。cの要素の表記のされかたが'int'の時と異なっていて、小数点がついている。桁数を非常に大きくしてみると、'int'では表示しきれなくなってエラーが返ってくる。floatにすれば問題なく配列を生成できる。小数の形で表した配列も、データ型を'int'に設定すると整数部分だけが残る。-4])中身の要素をintやfloatの値を指定しても、データ型がboolだった場合は、勝手にbool値へとキャストされた要素が入ります。bool値は0ならばFalse、0以外ならばTrueとなる。dtype=bool)原則として、配列が生成された後でデータ型の変換はオススメしません。データ型で指定できるビット数は変換される前のデータ列のビット列を何ビットごとに区切って読み取るか、という風に読み替えることもでき、ビット数を変換してしまうとそもそも返ってくる数字列が異なることがあります。同様に、データ型を変形させてもデータの読み取り方を変えているだけなので、データ型を元に戻すと元の配列を再現することができます。サンプルコードを見ながらそれを確かめていきましょう。データ型を'int32'に変換。floatに変換してみる。データ型を元に戻すと値も元に戻る。2])これらのビット数の違いを確かめます。1バイト(byte)です。0~9までの整数を100個生成。こちらはビット数を64に設定。hの8倍になっている。2.0DeepAgeではAIに関する厳選した内容を記事にしてお届けします。