1.numpy配列の構造と作成
1.1.numpyのデータ型
Numpy配列は基本的に1つのデータ型で構成されます。主に使用するデータ型の表を以下に示します。
データ型 |
説明 |
bool |
True または False |
int |
整数 |
uint |
符号なし整数 |
float |
浮動小数 |
complex |
複素数(虚数は"j"で表します。ex:2+5j) |
object |
(文字列を扱う場合はobjectを指定します) |
int、uint、float、complexの後ろに数字がついている場合があります(int32、float64など)。
これはビット数を表しており、この値に応じて扱える数値の範囲が変わります。
詳細については
Numpy Manualや別のサイトに譲ります。
また、データ型を短縮形で表すこともできます。
データ型 |
説明 |
'b' |
True または False |
'i' |
整数 |
'u' |
符号なし整数 |
'f' |
浮動小数 |
'c' |
複素数 |
'S' |
文字列 |
'U' |
Unicode文字列 |
この場合も'i'、'u'、'f'、'c'、'S'、'U'の後ろに値が付きます。
この値はバイトを意味しています。特に'S'、'U'は文字数制限を意味します。
1.2.numpy配列の作成(その1)
Numpy配列はリスト(Pythonの標準機能)から作成できます。
numpy.array( [value1, value2, …] )
#すべてint型で指定した場合
>>> np.array([1, 2, 3])
array([1, 2, 3])
#多次元配列の指定
>>> np.array([[1,2],[3,4]])
array([[1, 2],
[3, 4]])
#変数を用いてい指定
>>> a = [[1,2],[3,4]]
>>> np.array(a)
array([[1, 2],
[3, 4]])
Numpy配列に指定するリストの各要素がバラバラの型、例えば(float, int, int)の場合、Numpy配列の各要素の型はアップキャスト(例えばintはfloatに)変換されます。
#1のみfloat型で指定した場合
>>> np.array([1.0, 2, 3])
array([1., 2., 3.]) #すべてfloat型になる(アップキャスト)
これまではリストからNumpy配列を作ってきましたが、逆にNumpy配列をリストに変換できます。
x.tolist()
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> x.tolist()
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]