今回は、NumPyの配列を簡単に作成するのに便利な関数を紹介してきます!
はじめに
NumPyの配列を作成するのに便利な関数は以下の通りです。
関数 | 説明 |
np.arange() | 連続した数値の配列 |
np.linspace() | 等間隔の数値の配列 |
np.zeros() | すべての要素が0の配列 |
np.ones() | すべての要素が1の配列 |
np.random | ランダムの数値の配列 |
np.eye() | 単位行列 |
それぞれについて詳しく説明していきます
NumPyの配列を生成方法
それでは、NumPyの配列を生成する方法を6つ紹介していきます!
np.arange(): 連続した数値の配列
np.arange()
関数を使用して、連続した数値の配列を作成することができます。
np.arange()
の構文は以下の通りです。
np.arange([start=0], stop, [step=1], [dtype=None])
[]
内の引数は省略可能。
start
: 開始値。デフォルト0
stop
: 終了値.。終了値-1までを生成
step
: ステップ幅。要素の間隔。デフォルト1
dtype
: 配列のデータ型。デフォルトNoneで自動生成
使用例は以下の通りです。
import numpy as np
# 終了値(10)のみを指定した場合 0から9(終了値-1)までの整数を生成
ndarray1 = np.arange(10)
print(ndarray1)
# 開始値(5),終了値(10)を指定した場合 5から9までの整数を生成
ndarray2 = np.arange(5, 10)
print(ndarray2)
# 開始値(1),終了値(10),ステップ幅2を指定した場合1から9までの整数をステップ
ndarray3 = np.arange(1, 10, 2)
print(ndarray3)
実行結果
[0 1 2 3 4 5 6 7 8 9]
[5 6 7 8 9]
[1 3 5 7 9]
上記のように簡単に配列を生成することができます。
ただし、配列の要素の終わりは、終了値で指定した数値の-1
であることに注意していください!
np.linspace(): 等間隔の数値の配列
np.linspace()
関数を使用して、等間隔の数値の配列を作成できます。
np.linspace()
の構文は以下の通りです。
np.linspace(start, stop, [num=50], [endpoint=True], [retstep=False], [dtype=None])
[]
内の引数は省略可能。
start
: 開始値
stop
: 終了値
num
: 生成する数値の数。デフォルト50
endpoint
: Trueの場合は終了値を含み、Falseの場合は含まない。デフォルトはTrue
retstep
: Trueの場合はタプルを返し、Falseの場合は数列のみを返します。デフォルトはFalse
dtype
: 配列のデータ型。デフォルトNoneで自動生成
使用例は以下の通りです。
import numpy as np
# 0から1までの区間を50で等間隔に分割した配列
ndarray1 = np.linspace(0, 1)
print(ndarray1)
# 0から1までの区間を10で等間隔に分割した配列
ndarray2 = np.linspace(0, 1, 10)
print(ndarray2)
実行結果
[0. 0.02040816 0.04081633 0.06122449 0.08163265 0.10204082
0.12244898 0.14285714 0.16326531 0.18367347 0.20408163 0.2244898
0.24489796 0.26530612 0.28571429 0.30612245 0.32653061 0.34693878
0.36734694 0.3877551 0.40816327 0.42857143 0.44897959 0.46938776
0.48979592 0.51020408 0.53061224 0.55102041 0.57142857 0.59183673
0.6122449 0.63265306 0.65306122 0.67346939 0.69387755 0.71428571
0.73469388 0.75510204 0.7755102 0.79591837 0.81632653 0.83673469
0.85714286 0.87755102 0.89795918 0.91836735 0.93877551 0.95918367
0.97959184 1. ]
[0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
0.66666667 0.77777778 0.88888889 1. ]
実行結果が長くなりましたが、0~1の区間を指定した要素数で出力ができています。
np.zeros(): すべての要素が0の配列
np.zeros
関数を使用して、すべての要素が0の配列も生成することができます。
np.zeros
の構文は以下の通りです。
np.zeros(shape, [dtype=float], [order=’C’])
[]
内の引数は省略可能。
shape
: 配列の形状をタプルで指定。
dtype
: 配列のデータ型。デフォルトはfloat64
order
: 配列データの並べ方。デフォルトはC
order
は基本的にデフォルトのままでいいと思います。
使い方は以下の通りです。
import numpy as np
# 3×2のゼロ行列
zeros = np.zeros((3, 2))
print(zeros)
実行結果
[[0. 0.]
[0. 0.]
[0. 0.]]
3×2の要素0の行列が作成できました。
np.ones(): すべての要素が1の配列
np.ones()
を使用して、すべての要素が1の配列を作成することもできます。
使い方はnp.zeros()
と同じです。
np.ones()
の構文は以下の通りです。
np.ones(shape, [dtype=float], [order=’C’])
[]
内の引数は省略可能。
shape
: 配列の形状をタプルで指定。
dtype
: 配列のデータ型。デフォルトはfloat64
order
: 配列データの並べ方。デフォルトはC
order
は基本的にデフォルトのままでいいと思います。
使い方は以下の通りです。
import numpy as np
# 3×2の要素1の行列
ones = np.ones((3, 2))
print(ones)
実行結果
[[1. 1.]
[1. 1.]
[1. 1.]]
np.random: ランダムな数値の配列
続いて、ランダムな数値の配列を生成するnp.random
モジュールを紹介します。
np.random
モジュールには様々な関数がありますが、
今回は、np.random.randint()
関数について説明します!
np.random.randint()
関数の構文は以下の通りです。
numpy.random.randint(low, [high=None], [size=None], [dtype=int])
[]
内の引数は省略可能。
low
: 下限値
high
: 上限値。省略した場合、0から下限値で指定した数値までをランダムに生成
size
: 行列の形状をタプルで指定。デフォルトは一次元配列
dtype
: 配列のデータ型。デフォルトはint
使い方は以下の通りです。
import numpy as np
# 0から9までの範囲内からランダムな整数を1つ生成
random1 = np.random.randint(10)
print(random1)
# 1から10までの範囲内からランダムな整数を10こ生成
random2 = np.random.randint(1, 10, size=10)
print(random2)
実行結果
9
[1 5 1 6 2 9 4 4 6 2]
ランダムな値なので、みなさんの実行結果とは異なる数値が生成されていると思います。
np.eye(): 単位行列
np.eye()
関数で単位行列を作成する方法を紹介します。
np.eye()
の構文は以下の通りです。
np.eye(N, [M=None], [k=0], [dtype=float])
[]
内の引数は省略可能。
N
: 行数
M
: 列数。デフォルトはN
で指定した行数と同一
k
: 要素1の対角線の位置。デフォルト0。数値が正の場合上方向、負の場合下方向。
使い方は以下の通りです。
import numpy as np
# 3x3の単位行列を生成
i_matrix = np.eye(3)
print(i_matrix)
# 3x4の単位行列を生成
i_matrix2 = np.eye(3, 4)
print(i_matrix2)
# 3x4の単位行列, 要素1を上方向に1ずらす
i_matrix3 = np.eye(3, 4, 1)
print(i_matrix3)
実行結果
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
まとめ
NumPyの関数を使用して、配列を作成する方法を6つ紹介しました!
配列を生成する方法は他にもありますが、よく使用する6つを取り上げました。
他の生成方法が気になった方は、調べてみるといいですね!