Pynote

Python、機械学習、画像処理について

numpy - 雛形から配列を作成する関数まとめ (empty, zeros, ones, etc)

numpy.empty

指定した形状 shape 及び型 dtype で各要素が初期化されていない配列を作成する。

関数

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

import numpy as np

# 形状が (30,) で型が int の各要素が初期化されてない配列を作成する。
a = np.empty(30, dtype=int)

# 形状が (100, 100) で型が float の各要素が初期化されてない配列を作成する。
a = np.empty((100, 100), dtype=float)

numpy.empty_like

指定した配列 prototype と同じ形状及び型で各要素が初期化されていない配列を作成する。

関数

numpy.empty_like(prototype, dtype=None, order='K', subok=True)

# 形状が (100, 100) で型が float の配列を作成する。
a = np.random.randn(100, 100)

# 形状及び型が a と同じで各要素が初期化されていない配列を作成する。
b = np.empty_like(a)
print(b.shape, b.dtype)  # (100, 100) float64

numpy.ones

指定した形状 shape 及び型 dtype で各要素が1の配列をを作成する。

関数

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

# 形状が (30,) で型が int の各要素が1の配列を作成する。
a = np.ones(30, dtype=int)

# 形状が (100, 100) で型が float の各要素が1の配列を作成する。
a = np.ones((100, 100), dtype=float)

numpy.ones_like

指定した配列 a と同じ形状及び型で各要素が1の配列を作成する。

関数

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

# 形状が (3, 3) で型が float の配列を作成する。
a = np.random.randn(3, 3)

# 形状及び型が a と同じで各要素が1の配列を作成する。
b = np.ones_like(a)
print(b)
# [[1. 1. 1.]
#  [1. 1. 1.]
#  [1. 1. 1.]]

numpy.zeros

指定した形状 shape 及び型 dtype で各要素が0の配列を作成する。

関数

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

# 形状が (30,) で型が int の各要素が0の配列を作成する。
a = np.zeros(30, dtype=int)

# 形状が (100, 100) で型が float の各要素が0の配列を作成する。
a = np.zeros((100, 100), dtype=float)

numpy.zeros_like

指定した配列 a と同じ形状及び型で各要素が0の配列を作成する。

関数

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

# 形状が (3, 3) で型が float の配列を作成する。
a = np.random.randn(3, 3)

# 形状及び型が a と同じで各要素が0の配列を作成する。
b = np.zeros_like(a)
print(b)
# [[0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]

numpy.full

指定した形状 shape 及び型 dtype で各要素が指定した値 fill_value の配列を作成する。

関数

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

# 形状が (10,) で型が int の各要素が5の配列を作成する。
a = np.full(3, 5, dtype=int)
print(a)  # [5 5 5]

# 形状が (100, 100) で型が float の各要素が5の配列を作成する。
a = np.full((3, 3), 5, dtype=float)
print(a)
# [[5. 5. 5.]
#  [5. 5. 5.]
#  [5. 5. 5.]]

numpy.full_like

指定した配列 a と同じ形状及び型で各要素が指定した値 fill_value の配列を作成する。

関数

numpy.full_like(a, fill_value, dtype=None, order='K', subok=True)

# 形状が (3, 3) で型が float の配列を作成する。
a = np.random.randn(3, 3)

# 形状及び型が a と同じで各要素が5の配列を作成する。
b = np.full_like(a, 5)
print(b)
# [[5. 5. 5.]
#  [5. 5. 5.]
#  [5. 5. 5.]]

numpy.eye

指定した形状 (N, M) 及び型 dtype で対角線の要素が1で他の要素が0の行列を作成する。
対角線とは、 N \times M 行列 AA_{ii}, \ (i = 1, 2, \cdots min(N, M)) の要素をいう。

numpy.identity() との違い

  • 正方行列以外も作成できる。
  • 引数 k で対角線を上下にずらせる。

関数

numpy.eye(N, M=None, k=0, dtype=float, order='C')

# 形状が (4, 4) で型が float の対角要素が1で他の要素が0の行列を作成する。
a = np.eye(4, dtype=float)
print(a)
# [[1. 0. 0. 0.]
#  [0. 1. 0. 0.]
#  [0. 0. 1. 0.]
#  [0. 0. 0. 1.]]

# 形状が (4, 3) で型が float の対角要素が1で他の要素が0の行列を作成する。
a = np.eye(4, 3, dtype=float)
print(a)
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]
#  [0. 0. 0.]]

# 形状が (4, 4) で型が float の対角要素が1で他の要素が0の行列を作成する。
# 対角線を上に1つずらす。
a = np.eye(4, k=1, dtype=float)
print(a)
# [[0. 1. 0. 0.]
#  [0. 0. 1. 0.]
#  [0. 0. 0. 1.]
#  [0. 0. 0. 0.]]

# 形状が (4, 4) で型が float の対角要素が1で他の要素が0の行列を作成する。
# 対角線を下に1つずらす。
a = np.eye(4, k=-1, dtype=float)
print(a)
# [[0. 0. 0. 0.]
#  [1. 0. 0. 0.]
#  [0. 1. 0. 0.]
#  [0. 0. 1. 0.]]

numpy.identity

指定した形状 (n, n) 及び型 dtype の単位行列を作成する。

関数

numpy.identity(n, dtype=None)

# 形状が (4, 4) で型が float の単位行列を作成する。
a = np.identity(4, dtype=float)
print(a)
# [[1. 0. 0. 0.]
#  [0. 1. 0. 0.]
#  [0. 0. 1. 0.]
#  [0. 0. 0. 1.]]