NumPy のデータ型の理解

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、NumPy に用意されているさまざまなデータ型を理解するための手順を示し、配列のデータ型をどのように変更するかを説明します。NumPy は、ブール型、整数型、浮動小数点数型、複素数型など、幅広い数値型をサポートしています。これらのデータ型を理解することは、NumPy を使ってさまざまな数値計算やデータ分析タスクを行う際に重要です。

注: 04-data-types.ipynb でコードを記述できます。手順では一部の出力表示操作を省略していますので、必要に応じて出力を表示してください。

データ型の理解

NumPy は、C 言語におけるものと密接に関連したさまざまな数値型をサポートしています。以下は、NumPy で最も一般的に使用されるデータ型のいくつかです。

  • numpy.bool_: バイトとして格納されるブール型 (True または False)
  • numpy.byte: 符号付き char (プラットフォームに依存)
  • numpy.ubyte: 符号なし char (プラットフォームに依存)
  • numpy.short: ショート (プラットフォームに依存)
  • numpy.ushort: 符号なしショート (プラットフォームに依存)
  • numpy.intc: int (プラットフォームに依存)
  • numpy.uintc: 符号なし int (プラットフォームに依存)
  • numpy.int_: long (プラットフォームに依存)
  • numpy.uint: 符号なし long (プラットフォームに依存)
  • numpy.longlong: long long (プラットフォームに依存)
  • numpy.ulonglong: 符号なし long long (プラットフォームに依存)
  • numpy.half / numpy.float16: 半精度浮動小数点数
  • numpy.single: 単精度浮動小数点数 (プラットフォームに依存)
  • numpy.double: 倍精度浮動小数点数 (プラットフォームに依存)
  • numpy.longdouble: 拡張精度浮動小数点数 (プラットフォームに依存)
  • numpy.csingle: 2 つの単精度浮動小数点数で表される複素数
  • numpy.cdouble: 2 つの倍精度浮動小数点数で表される複素数
  • numpy.clongdouble: 2 つの拡張精度浮動小数点数で表される複素数

これらのデータ型はプラットフォームに依存する定義を持っていますが、NumPy は便利さのために固定サイズのエイリアスも提供しています。

データ型の操作

NumPy のデータ型は dtype(データ型)オブジェクトとして表されます。import numpy as np を使って NumPy をインポートした後は、np.bool_np.float32 などを使ってデータ型にアクセスできます。

データ型を関数として使って、Python の数値を配列スカラーに変換したり、Python の数値のシーケンスをその型の配列に変換したり、または多くの NumPy 関数やメソッドの dtype キーワードの引数として使うことができます。以下はいくつかの例です。

x = np.float32(1.0)
## x は現在、値が 1.0 の float32 の配列スカラーになります

y = np.int_([1,2,4])
## y は現在、値が [1, 2, 4] の int 型の配列になります

z = np.arange(3, dtype=np.uint8)
## z は現在、値が [0, 1, 2] の uint8 型の配列になります

文字コードを使って配列型を参照することもできますが、dtype オブジェクトを代わりに使うことをお勧めします。たとえば:

np.array([1, 2, 3], dtype='f')
## 値が [1., 2., 3.] で dtype が float32 の配列を返します

配列の型を変換するには、.astype() メソッドを使うか、型自体を関数として使うことができます。たとえば:

z.astype(float)
## dtype が float64 の配列 z を返します

np.int8(z)
## dtype が int8 の配列 z を返します

配列のデータ型の取得

配列のデータ型を決定するには、dtype 属性にアクセスできます。たとえば:

z.dtype
## 配列 z の dtype を返します。これは uint8 になります

dtype オブジェクトには、ビット幅やバイトオーダーなど、型に関する情報も含まれています。型のプロパティを照会するために、たとえばそれが整数型であるかどうかを確認するために、dtype オブジェクトを使うことができます。たとえば:

d = np.dtype(int)
## int 型用の dtype オブジェクトを作成します

np.issubdtype(d, np.integer)
## d が np.integer のサブタイプであることを示す True を返します

np.issubdtype(d, np.floating)
## d が np.floating のサブタイプでないことを示す False を返します

まとめ

この実験では、NumPy に用意されているさまざまな数値型とそれらを操作する方法について学びました。dtype オブジェクトを使って、Python の数値を配列スカラーに変換したり、特定の型の配列を作成したり、配列のデータ型を変更したりすることができます。データ型を理解することは、NumPy を使って数値計算やデータ分析タスクを行う際に重要です。