Numpy-data-types

提供:Dev Guides
移動先:案内検索

NumPy-データ型

NumPyは、Pythonよりもはるかに多様な数値型をサポートしています。 次の表は、NumPyで定義されているさまざまなスカラーデータ型を示しています。

Sr.No. Data Types & Description
1

bool_

バイトとして保存されるブール値(TrueまたはFalse)

2

int_

デフォルトの整数型(C longと同じ。通常はint64またはint32)

3

intc

C intと同じ(通常はint32またはint64)

4

intp

インデックスに使用される整数(C ssize_tと同じ。通常はint32またはint64)

5

int8

バイト(-128から127)

6

int16

整数(-32768から32767)

7

int32

整数(-2147483648から2147483647)

8

int64

整数(-9223372036854775808から9223372036854775807)

9

uint8

符号なし整数(0〜255)

10

uint16

符号なし整数(0〜65535)

11

uint32

符号なし整数(0〜4294967295)

12

uint64

符号なし整数(0から18446744073709551615)

13

float_

float64の省略形

14

float16

半精度浮動小数点数:符号ビット、5ビットの指数、10ビットの仮数

15

float32

単精度浮動小数点数:符号ビット、8ビット指数、23ビット仮数

16

float64

倍精度浮動小数点数:符号ビット、11ビットの指数、52ビットの仮数

17

complex_

complex128の省略形

18

complex64

2つの32ビット浮動小数点数で表される複素数(実数部と虚数部)

19

complex128

2つの64ビットフロート(実数部と虚数部)で表される複素数

NumPy数値型は、dtype(データ型)オブジェクトのインスタンスであり、それぞれに固有の特性があります。 dtypesはnp.bool_、np.float32などとして利用可能です。

データ型オブジェクト(dtype)

データ型オブジェクトは、次の側面に応じて、配列に対応するメモリの固定ブロックの解釈を説明します-

  • データのタイプ(整数、フロート、またはPythonオブジェクト)
  • データのサイズ
  • バイト順(リトルエンディアンまたはビッグエンディアン)
  • 構造化タイプの場合、フィールドの名前、各フィールドのデータタイプ、および各フィールドが使用するメモリブロックの一部。
  • データ型がサブ配列の場合、その形状とデータ型

バイト順は、データ型の前に「<」または「>」を付けることで決定されます。 「<」は、エンコードがリトルエンディアンであることを意味します(最下位アドレスは最小アドレスに格納されます)。 '>'は、エンコードがビッグエンディアンであることを意味します(最上位バイトは最小アドレスに格納されます)。

dtypeオブジェクトは、次の構文を使用して構築されます-

numpy.dtype(object, align, copy)

パラメータは次のとおりです-

  • Object -データ型オブジェクトに変換されます
  • Align -trueの場合、フィールドにパディングを追加してC構造体に似たものにします
  • コピー-dtypeオブジェクトの新しいコピーを作成します。 falseの場合、結果は組み込みデータ型オブジェクトへの参照です

例1

# using array-scalar type
import numpy as np
dt = np.dtype(np.int32)
print dt

出力は次のとおりです-

int32

例2

#int8, int16, int32, int64 can be replaced by equivalent string 'i1', 'i2','i4', etc.
import numpy as np

dt = np.dtype('i4')
print dt

出力は次のとおりです-

int32

実施例3

# using endian notation
import numpy as np
dt = np.dtype('>i4')
print dt

出力は次のとおりです-

>i4

次の例は、構造化データ型の使用を示しています。 ここでは、フィールド名と対応するスカラーデータ型が宣言されます。

実施例4

# first create structured data type
import numpy as np
dt = np.dtype([('age',np.int8)])
print dt

出力は次のとおりです-

[('age', 'i1')]

実施例5

# now apply it to ndarray object
import numpy as np

dt = np.dtype([('age',np.int8)])
a = np.array([(10,),(20,),(30,)], dtype = dt)
print a

出力は次のとおりです-

[(10,) (20,) (30,)]

実施例6

# file name can be used to access content of age column
import numpy as np

dt = np.dtype([('age',np.int8)])
a = np.array([(10,),(20,),(30,)], dtype = dt)
print a['age']

出力は次のとおりです-

[10 20 30]

実施例7

次の例では、文字列フィールド「名前」、「整数フィールド」「年齢」、および「浮動フィールド」「マーク」を使用して、「学生」と呼ばれる構造化データ型を定義します。 このdtypeはndarrayオブジェクトに適用されます。

import numpy as np
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
print student

出力は次のとおりです-

[('name', 'S20'), ('age', 'i1'), ('marks', '<f4')])

例8

import numpy as np

student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student)
print a

出力は次のとおりです-

[('abc', 21, 50.0), ('xyz', 18, 75.0)]

各組み込みデータ型には、一意に識別する文字コードがあります。

  • 'b' -ブール
  • 'i' -(符号付き)整数
  • 'u' -符号なし整数
  • 'f' -浮動小数点
  • 'c' -複素浮動小数点
  • 'm' -タイムデルタ
  • 'M' -日時
  • 'O' -(Python)オブジェクト
  • 'S'、 'a' -(バイト)文字列
  • 'U' -Unicode
  • 'V' -生データ(void)