NumPyのデータ型

Pythonのデータ型

デフォルトでは、Pythonには以下のデータ型があります:

  • strings - テキストデータを表します。テキストは引用符で囲まれます。例えば"ABCD"。
  • integer - 整数を表します。例えば-1、-2、-3。
  • float - 実数を表します。例えば1.2、42.42。
  • boolean - TrueまたはFalseを表します。
  • complex - 異なる複素数平面の数を表します。例えば1.0 + 2.0j、1.5 + 2.5j。

NumPyのデータ型

NumPyにはいくつかの追加データ型があり、それらはキャラクターで参照されます。例えば i 整数を表します。u 無符号整数などを表します。

以下はNumPyのすべてのデータ型のリストおよびそれらを表す文字です。

  • i - 整数
  • b - 布尔
  • u - 无符号整数
  • f - 浮動小数点
  • c - 異なる浮動小数点数
  • m - timedelta
  • M - datetime
  • O - オブジェクト
  • S - 文字列
  • U - unicode文字列
  • V - 固定のその他の型のメモリブロック(void)

配列のデータ型を確認します

という名前の属性があります。 dtype NumPy配列オブジェクトには、

インスタンス

の属性を取得します。この属性は配列のデータ型を返します:

import numpy as np
配列オブジェクトのデータ型を取得します:
arr = np.array([1, 2, 3, 4])dtype)

実行例

インスタンス

print(arr.

import numpy as np
文字列を含む配列のデータ型を取得します:
print(arr.dtype)

実行例

arr = np.array(['apple', 'banana', 'cherry'])

既定のデータ型で配列を作成します: array() 関数で配列を作成します。この関数はオプションの引数を使用できます:dtype配列の要素の期待されるデータ型を定義できます:

インスタンス

データ型文字列で配列を作成します:

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

実行例

次に iufS および Uサイズも定義できます。

インスタンス

4バイトの整数データ型の配列を作成します:

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

実行例

値が変換できない場合はどうなりますか?

要素の型を強制的に変換することができない場合、NumPyはValueErrorを発生させます。

ValueError:Python では、関数に非期待または不正なタイプのパラメータが渡された場合に ValueError が発生します。

インスタンス

非整数の文字列(例えば 'a')を整数に変換することはできません(エラーが発生します):

import numpy as np
arr = np.array(['a', '2', '3'], dtype='i')

実行例

既存の配列のデータ型を変換する

既存の配列のデータ型を変更する最善の方法は、 astype() メソッドはその配列をコピーします。

astype() 関数は配列のコピーを作成し、データ型をパラメータとして指定することができます。

データ型は文字列として指定することもできます。 'f' は浮点数を示します。'i' は整数などの表示など、データ型を直接使用することもできます。 float は浮点数を示します。int は整数を示します。

インスタンス

使用することで 'i' パラメータ値としてデータ型を浮点数から整数に変更する:

import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype('i')
print(newarr)
print(newarr.dtype)

実行例

インスタンス

使用することで int パラメータ値としてデータ型を浮点数から整数に変更する:

import numpy as np
arr = np.array([1.1, 2.1, 3.1])
newarr = arr.astype(int)
print(newarr)
print(newarr.dtype)

実行例

インスタンス

データ型を整数からボルンに変更する:

import numpy as np
arr = np.array([1, 0, 3])
newarr = arr.astype(bool)
print(newarr)
print(newarr.dtype)

実行例