配列の作成と初期化

NumPy入門② 配列の作成と初期化

配列の作成方法

NumPyでは、np.array 関数を使ってPythonのリストやタプルから配列(ndarray)を作成できます。

import numpy as np

# リストから作成
a = np.array([1, 2, 3, 4, 5])
print(a)        # [1 2 3 4 5]

# 二次元配列
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
# [[1 2 3]
#  [4 5 6]]

代表的な初期化関数

NumPyには、特定の値やランダム値で配列を簡単に初期化できる関数が用意されています。

ゼロ配列・1配列

# ゼロで初期化
zeros = np.zeros((3, 4))
print(zeros)
# 3行4列の0配列

# 1で初期化
ones = np.ones((2, 3))
print(ones)
# 2行3列の1配列

任意の値で初期化

full = np.full((2, 2), 7)
print(full)
# [[7 7]
#  [7 7]]

単位行列(対角が1)

eye = np.eye(3)
print(eye)
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

等差数列・等比数列

配列を連続的な数値で初期化することも可能です。

# 0から9まで(ステップ1)
arr1 = np.arange(10)
print(arr1)   # [0 1 2 3 4 5 6 7 8 9]

# 0から2までを5分割
arr2 = np.linspace(0, 2, 5)
print(arr2)   # [0.  0.5 1.  1.5 2. ]

乱数で初期化

シミュレーションや検証に便利な乱数の初期化も可能です。

# 0〜1の乱数(3x3行列)
rand_arr = np.random.rand(3, 3)
print(rand_arr)

# 標準正規分布からの乱数
normal_arr = np.random.randn(3, 3)
print(normal_arr)

まとめ

  • np.array でリストやタプルから配列を作成できる
  • np.zeros, np.ones, np.full, np.eye で便利に初期化できる
  • np.arange, np.linspace で数列を生成可能
  • np.random を使えば乱数による初期化も容易