Numpy-data-types
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)