レッスン1 / 2問目

『dtype』

このレッスンではndarrayのプロパティ(属性)であるdtypeについて学習していきましょう。(本レッスンは前提知識としてメモリに関する知識(2進数やビットなどコンピュータの基本的な知識)が必要となります。)

dtypeとは配列要素の型をもつ属性です。以下のようにndarrayに続けてdtypeと記述することでndarrayの要素の型を取得することができます。

  1. import numpy as np
  2. arr = np.array([1, 2, 3])
  3. print(arr.dtype)
dtype('int64')

このようにdtypeプロパティでndarrayの要素の型を取得することができます。この例では「dtype('int64')」となっていますが、これは64ビットのint型であることを表しています。このようにndarrayではビット数を指定することで確保するメモリ量を調整することができます。

また、基本的には一つのndarrayのに対して一つのdtypeが設定されており、すべての要素が同じデータ型となります。int型では8ビット~64ビット型までが用意されており、それぞれが表現できる数値の範囲は以下の通りとなります。

dtype 説明
int8 整数(-128~127)
int16 整数(-32768~32767)
int32 整数(-2147483648~2147483647)
int64 整数(-9223372036854775808~ 9223372036854775807)

上記のようにdtypeは「型 + ビット数」という形式となっています。
また、intの他にもfloat(浮動小数点数)、bool(真偽値)、object(オブジェクト)、uint(符号無し整数)、complex(複素数)などの型があります。

dtype 説明
int8~64 整数
float16~128 浮動小数点数
uint8~64 符号無し整数
complex64~256 複素数
object Pythonオブジェクト型
bool 真偽値

※上記表ではビット数の範囲を「8~64」のように表記していますが、8~64の56パターンがあるわけではなく、「8」「16」「32」「64」「128」「256」の6パターンを対象としています。

このようにNumPyではビット数を指定することで効率よくメモリを使うことができます。

- dtypeの指定 -

ではここからはdtypeを指定する方法を見ていきましょう。
dtypeを指定するには以下のようにnp.array()の引数にdtypeを指定します。

  1. arr = np.array([1, 2, 3], dtype="float32")
  2. arr.dtype
dtype('float32')

このようにndarray生成時にnp.array()の引数にし型を指定することでdtypeを設定することができます。ちなみにデフォルト(何も指定しない場合)では整数の場合int64、floatの場合float64となります。

では今回の演習課題では配列生成時にdtypeを指定してみましょう。

Lesson1

変数aからdtypeにfloat32を指定したndarrayを生成しdtypeを出力してください。

Lesson2

変数aからdtypeにint16を指定したndarrayを生成しdtypeを出力してください。

Last updated:2019/12/28

float32
int16
  1. import numpy as np

  2. a = [1 , 2, 3]

  3. # 変数aからndarrayを生成しdtypeにfloat32を指定し出力してください。

  4. answer1 = np.array(a, dtype="float32")
  5. print(answer1.dtype)


  6. # 変数aからndarrayを生成しdtypeにint16を指定し出力してください。

  7. answer2 = np.array(a, dtype="int16")
  8. print(answer2.dtype)
main.py
設定
g
n
i
d
a
o
L