NumPy(Numerical Python)は、Pythonでの科学技術計算をサポートするライブラリであり、効率的な配列操作が可能です。
NumPyのデータ型は、その配列(ndarray)に格納されるデータの種類を定義し、データの効率的な保存と操作を可能にします。
以下に、NumPyの主要なデータ型とその特徴について詳しく説明します。
目次
基本的なデータ型
数値データ型
整数型(integer)
- int8: 8ビット整数(-128から127)
- int16: 16ビット整数(-32,768から32,767)
- int32: 32ビット整数(-2,147,483,648から2,147,483,647)
- int64: 64ビット整数(-9,223,372,036,854,775,808から9,223,372,036,854,775,807)
符号なし整数型(unsigned integer)
- uint8: 8ビット符号なし整数(0から255)
- uint16: 16ビット符号なし整数(0から65,535)
- uint32: 32ビット符号なし整数(0から4,294,967,295)
- uint64: 64ビット符号なし整数(0から18,446,744,073,709,551,615)
浮動小数点数型(floating point)
- float16: 半精度浮動小数点数
- float32: 単精度浮動小数点数
- float64: 倍精度浮動小数点数(NumPyのデフォルト)
- float128: 四倍精度浮動小数点数(システムによってはサポートされないことがあります)
複素数型(complex floating point)
- complex64: 複素数(2つの32ビット浮動小数点数)
- complex128: 複素数(2つの64ビット浮動小数点数)
その他のデータ型
ブール型(boolean)
- bool_: 真(True)または偽(False)
文字列型(string)
- string_: 固定長のバイト文字列
- unicode_: 固定長のUnicode文字列
バイト型(byte)
- byte: 8ビットのバイト
- ubyte: 8ビットの符号なしバイト
オブジェクト型(object)
- object_: 任意のPythonオブジェクト(配列要素として他のPythonオブジェクトを格納する場合に使用)
データ型のエイリアス
NumPyでは、Pythonの標準的なデータ型と互換性のあるデータ型エイリアスを提供しています。
これにより、Pythonの標準的な型とNumPyの型を相互運用しやすくなります。
- int: プラットフォームに依存する整数型(通常はint32またはint64)
- float: プラットフォームに依存する浮動小数点数型(通常はfloat64)
- complex: プラットフォームに依存する複素数型(通常はcomplex128)
データ型の設定と確認
NumPy配列のデータ型は、配列の作成時に指定できます。
以下はその例です。
import numpy as np
# 整数型の配列を作成
arr_int = np.array([1, 2, 3, 4], dtype=np.int32)
print(arr_int.dtype) # int32
# 浮動小数点数型の配列を作成
arr_float = np.array([1.1, 2.2, 3.3, 4.4], dtype=np.float64)
print(arr_float.dtype) # float64
# 複素数型の配列を作成
arr_complex = np.array([1+2j, 3+4j, 5+6j], dtype=np.complex128)
print(arr_complex.dtype) # complex128
データ型の変換
既存の配列のデータ型を変更する場合、astype
メソッドを使用します。
# 整数型から浮動小数点数型に変換
arr_int_to_float = arr_int.astype(np.float64)
print(arr_int_to_float.dtype) # float64
# 浮動小数点数型から整数型に変換
arr_float_to_int = arr_float.astype(np.int32)
print(arr_float_to_int.dtype) # int32
データ型の柔軟性
NumPyのデータ型は、特定のアプリケーションや計算のニーズに合わせて最適化できます。
例えば、大規模なデータセットを効率的に処理するためにメモリ使用量を最小限に抑えたい場合、適切なデータ型を選択することが重要です。
各データ型の特性を理解し、適切に利用することで、効率的かつ効果的な数値計算が可能になります。
以上、Numpyのデータ型についてでした。
最後までお読みいただき、ありがとうございました。