NumPy 配列の作成

ndarray 配列は、低レベルの ndarray コンストラクタを使用して作成するだけでなく、以下の方法でも作成できます。

numpy.empty

numpy.empty メソッドは、指定した形状(shape)、データ型(dtype)を持ち、初期化されていない配列を作成するために使用します:

numpy.empty(shape, dtype = float, order = 'C')

パラメータの説明:

パラメータ 説明
shape 配列の形状
dtype データ型、オプション
order "C" と "F" の2つのオプションがあり、それぞれ行優先と列優先を表し、コンピュータのメモリ内での要素の格納順序を示します。

以下は空の配列を作成する例です:

例

import numpy as np x = np.empty([3,2], dtype = int) print (x)

出力結果は次のとおりです:

[[ 6917529027641081856  5764616291768666155]
 [ 6917529027641081859 -5764598754299804209]
 [          4497473538      844429428932120]]

注意− 配列の要素は初期化されていないため、ランダムな値になります。

numpy.zeros

指定したサイズの配列を作成し、配列の要素を 0 で埋めます:

numpy.zeros(shape, dtype = float, order = 'C')

パラメータの説明:

パラメータ 説明
shape 配列の形状
dtype データ型、オプション
order 'C' は C の行配列用、'F' は FORTRAN の列配列用です

例

import numpy as np # デフォルトは浮動小数点数 x = np.zeros(5) print(x) # 型を整数に設定 y = np.zeros((5,), dtype = int) print(y) # カスタム型 z = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')]) print(z)

出力結果は次のとおりです:

[0. 0. 0. 0. 0.]
[0 0 0 0 0]
[[(0, 0) (0, 0)]
 [(0, 0) (0, 0)]]

numpy.ones

指定した形状の配列を作成し、配列の要素を 1 で埋めます:

numpy.ones(shape, dtype = None, order = 'C')

パラメータの説明:

パラメータ 説明
shape 配列の形状
dtype データ型、オプション
order 'C' は C の行配列用、'F' は FORTRAN の列配列用です

例

import numpy as np # デフォルトは浮動小数点数 x = np.ones(5) print(x) # カスタム型 x = np.ones([2,2], dtype = int) print(x)

出力結果は次のとおりです:

[1. 1. 1. 1. 1.]
[[1 1]
 [1 1]]

numpy.zeros_like

numpy.zeros_like は、指定された配列と同じ形状の配列を作成するために使用され、配列の要素は 0 で埋められます。

numpy.zeros と numpy.zeros_like はどちらも、すべての要素が 0 である指定した形状の配列を作成するために使用されます。

それらの違いは、numpy.zeros は作成する配列の形状を直接指定できるのに対し、numpy.zeros_like は指定された配列と同じ形状の配列を作成することです。

numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)

パラメータの説明:

パラメータ 説明
a 同じ形状を作成するための基となる配列
dtype 作成する配列のデータ型
order 配列のメモリ内での格納順序。オプションの値は 'C'(行優先)または 'F'(列優先)、デフォルトは 'K'(入力配列の格納順序を保持)
subok サブクラスの返却を許可するかどうか。True の場合、サブクラスオブジェクトを返し、それ以外の場合は a 配列と同じデータ型と格納順序を持つ配列を返します。
shape 作成する配列の形状。指定しない場合、デフォルトは a 配列の形状になります。

arr と同じ形状で、すべての要素が 0 の配列を作成します:

例

import numpy as np # 3x3 の2次元配列を作成 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # arr と同じ形状で、すべての要素が 0 の配列を作成 zeros_arr = np.zeros_like(arr) print(zeros_arr)

出力結果は次のとおりです:

[[0 0 0]
 [0 0 0]
 [0 0 0]]

numpy.ones_like

numpy.ones_like は、指定された配列と同じ形状の配列を作成するために使用され、配列の要素は 1 で埋められます。

numpy.ones と numpy.ones_like はどちらも、すべての要素が 1 である指定した形状の配列を作成するために使用されます。

それらの違いは、numpy.ones は作成する配列の形状を直接指定できるのに対し、numpy.ones_like は指定された配列と同じ形状の配列を作成することです。

numpy.ones_like(a, dtype=None, order='K', subok=True, shape=None)

パラメータの説明:

パラメータ 説明
a 同じ形状を作成するための基となる配列
dtype 作成する配列のデータ型
order 配列のメモリ内での格納順序。オプションの値は 'C'(行優先)または 'F'(列優先)、デフォルトは 'K'(入力配列の格納順序を保持)
subok サブクラスの返却を許可するかどうか。True の場合、サブクラスオブジェクトを返し、それ以外の場合は a 配列と同じデータ型と格納順序を持つ配列を返します。
shape 作成する配列の形状。指定しない場合、デフォルトは a 配列の形状になります。

arr と同じ形状で、すべての要素が 1 の配列を作成します:

例

import numpy as np # 3x3 の2次元配列を作成 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # arr と同じ形状で、すべての要素が 1 の配列を作成 ones_arr = np.ones_like(arr) print(ones_arr)

出力結果は次のとおりです:

[[1 1 1]
 [1 1 1]
 [1 1 1]]
その他の拡張