PythonモジュールNumPyにおける配列の生成方法についてまとめました。
【1次元配列】numpy.array
numpy.arrayメソッドで1次元配列を宣言・初期化できます。
# -*- coding: utf-8 -*- import numpy as np x = np.array([1, 0, 1]) print(x) # [1 0 1]
1次元配列はベクトルの生成や計算に使うことが出来ます。
– | 関連記事 |
---|---|
詳細 | ■【NumPy】1次元配列の生成(numpy.array) |
【2次元配列】numpy.array
numpy.arrayメソッドで2次元配列を宣言・初期化できます。
# -*- coding: utf-8 -*- import numpy as np A = np.array([[1, 2], [3, 4], [5, 6]]) print(A) # [[1 2] # [3 4] # [5 6]]
– | 関連記事 |
---|---|
詳細 | ■【NumPy】2次元配列の生成(numpy.array) |
【等差数列】numpy.linspace、numpy.arrange
numpy.linspace(a, b, n)メソッドでa以上b以下で個数nの等差数列(配列)を作成ができます。
# -*- coding: utf-8 -*- import numpy as np x = np.linspace(1, 2, 5) print(x) # [ 1. 1.25 1.5 1.75 2. ]
– | 関連記事 |
---|---|
詳細 | ■【NumPy】等差数列の生成(numpy.linspace) |
numpy.arrange(a, b, d)メソッドでa以上b未満で間隔dの等差数列を作ることができます。
# -*- coding: utf-8 -*- import numpy as np x = np.arange(1, 5, 2) print(x) # [1 3]
【配列を高速生成】numpy.empty
numpy.emptyで配列を高速に生成できます。
(領域確保だけ行い要素の値の初期化は行いません)
# -*- coding: utf-8 -*- import numpy as np A = np.empty([2, 3]) print(A) # [[ 1.89122294e+219 3.44999157e-085 4.44748472e+252] [ 3.65284547e+233 3.94153470e+180 5.43239533e-311]]
– | 関連記事 |
---|---|
詳細 | ■【NumPy】配列を高速に生成 (numpy.empty) |
【要素が全て1の配列】numpy.ones(m, n)
numpy.ones(m, n)メソッドでm×n(行数m、列数n)の要素が全て1の配列を作成できます。
# -*- coding: utf-8 -*- import numpy as np # 配列の宣言・初期化 X = np.ones((2, 3)) # 画面出力 print(X) ''' [[ 1. 1. 1.] [ 1. 1. 1.]] '''
– | 関連記事 |
---|---|
詳細 | ■【NumPy】要素が全て1の配列生成 (numpy.ones) |
【全ての要素が同じ配列】numpy.zeros_like、numpy.ones_like
NumPy配列では、特定の配列と同じサイズで全ての要素が「0」や「1」の配列を生成する機能が用意されています。
書式
– | 説明 |
---|---|
X = numpy.zeros_like(A) | 配列Aと同じサイズで全ての要素が0の配列Xを生成します。 |
X = numpy.ones_like(A) | 配列Aと同じサイズで全ての要素が1の配列Xを生成します。 |
# -*- coding: utf-8 -*- import numpy as np # 配列の宣言・初期化 X = np.array([[1, 2, 3],[4, 5, 6]]) # 結果表示 print(np.zeros_like(X)) """ [[0 0 0] [0 0 0]] """ print(np.ones_like(X)) """ [[1 1 1] [1 1 1]] """
– | 関連記事 |
---|---|
詳細 | ■【NumPy】1つの配列と同じサイズで全ての要素が「0」「1」の配列を生成 |
また、numpy.zero(m, n)メソッドでm×n(行数m、列数n)の要素が全て0の配列を作成できます。
# -*- coding: utf-8 -*- import numpy as np # 配列の宣言・初期化 X = np.zeros((2, 3)) # 画面出力 print(X) """ [[ 0. 0. 0.] [ 0. 0. 0.]] """
– | 関連記事 |
---|---|
詳細 | ■【NumPy】要素が全て0の配列生成 (numpy.zeros) |
【単位行列の配列】生成
numpy.eye(m)メソッドでm×mの単位行列(配列)を作成できます。
# -*- coding: utf-8 -*- import numpy as np # 配列の宣言・初期化 X = np.eye(3) # 画面出力 print(X) """ [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]] """
– | 関連記事 |
---|---|
詳細 | ■【NumPy】単位行列の配列生成 (numpy.eye) |
【三角行列の配列】numpy.tri
numpy.triで三角行列を生成できます。
# -*- coding: utf-8 -*- import numpy as np A = np.tri(4) print(A) """ [[ 1. 0. 0. 0.] [ 1. 1. 0. 0.] [ 1. 1. 1. 0.] [ 1. 1. 1. 1.]] """
– | 関連記事 |
---|---|
詳細 | ■【NumPy】三角行列を生成 (numpy.tri) |
【同じ要素を繰り返した配列】numpy.repeat
numpy.repeatメソッドで同じ要素を繰り返して配列を作成できます。
# -*- coding: utf-8 -*- import numpy as np # 配列の宣言・初期化 A = np.repeat([1, 2, 3, 4], 3) B = np.array([1, 2, 3, 4]*3) # 画面出力 print(A) # [1 1 1 2 2 2 3 3 3 4 4 4] print(B) # [1 2 3 4 1 2 3 4 1 2 3 4]
– | 関連記事 |
---|---|
詳細 | ■【NumPy】同じ要素を繰り返して配列生成 (numpy.repeat) |
【格子状配列】numpy.meshgrid
numpy.meshgridで格子状配列を生成できます。
# -*- coding: utf-8 -*- import numpy as np x = np.array([1,2,3]) y = np.array([4,5,6,7]) xx, yy = np.meshgrid(x, y) print(xx) """ [[1 2 3] [1 2 3] [1 2 3] [1 2 3]] """ print(yy) """ [[4 4 4] [5 5 5] [6 6 6] [7 7 7]] """
これは
xx = np.repeat(x, (len(y)) yy = np.repeat(y, (len(x)).T
と同じ効果です。
– | 関連記事 |
---|---|
詳細 | ■【NumPy】格子状配列の生成 (numpy.meshgrid) |
【対数スケールの配列】numpy.logspace
numpy.logspaceで対数スケールの配列を生成できます。
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)[source]
パラメータ|概要
start|生成される配列の最初の値。
stop|f生成される値の最期の値。endpointにFalseが設定されている場合はこの値を含まなくなります。
num|生成する配列(ndarray)の要素数(デフォルト50で省略可能)
endpoint|Trueの場合、stopが最後の値となる。Falseの場合、stopの値が配列に含まれない。(デフォルトTrueで省略可能)
base|基数(底)(デフォルト10.0で省略可能)
dtype|出力配列の型(デフォルトfloat64で省略可能)
# -*- coding: utf-8 -*- import numpy as np # 2^1 ~ 2^10 までを値に持つ配列を生成 x = np.logspace(1, 10, 10, base=2) print(x) # [ 2. 4. 8. 16. 32. 64. 128. 256. 512. 1024.]
– | 関連記事 |
---|---|
詳細 | ■【Python/NumPy】対数スケールの配列を生成(numpy.logspace) |
【データ型を設定】dtype
Pythonの数値計算モジュールNumPyでは、配列生成時にデータ型を設定できます。
【詳細】データ型の種類一覧
# -*- coding: utf-8 -*- import numpy as np x = np.array([1, 0, 1], dtype='float32') print(x) # [ 1. 0. 1.]
– | 関連記事 |
---|---|
詳細 | ■【NumPy】配列生成時にデータ型を設定 dtype |
【データ型の種類】一覧
NumPyの配列のデータ型は以下の種類があります。
種類 | 説明 |
---|---|
bool | 論理値型 |
inti | OS依存の整数(64bitのOSならint型64ビット) |
int8 | 8ビットの整数型 |
int16 | 16ビットの整数型 |
int32 | 32ビットの整数型 |
int64 | 64ビットの整数型 |
unit8 | 8ビット符号なし整数型(画像処理などでよく使います) |
unit16 | 16ビット符号なし整数型 |
unit32 | 32ビット符号なし整数型 |
unit64 | 64ビット符号なし整数型 |
float16 | 16ビットの実数型 |
float32 | 32ビットの実数型 |
float64 | 64ビットの実数型 |
complex64 | 64ビットの複素数型 |
complex128 | 128ビットの複素数型 |
NumPyの配列は、型推定が行われますが配列生成のメソッドで引数dtypeで型を指定することもできます。
また、配列のデータ型はdtype属性で確認できます。
# -*- coding: utf-8 -*- import numpy as np x = np.array([1, 2, 3]) print(x.dtype) # int32 y = np.array([1., 2., 3.]) print(y.dtype) # float64 z = np.array([1, 2, 3], dtype='float64') print(z.dtype) # float64
– | 関連記事 |
---|---|
詳細 | ■【NumPy】配列生成時にデータ型を設定 dtype |
– | 関連記事 |
---|---|
1 | ■PythonでOpenCV入門 サンプル集 |
2 | ■【Python】画像処理プログラミング入門 |
3 | ■【画像処理入門】アルゴリズム&プログラミング |
コメント