
numpy.fullで全ての要素が指定値の配列を生成する(full_like)
NumPyで、全ての要素が0埋めされた状態で配列を生成するには、numpy.zeros
を使います。1で埋めたい場合は、numpy.ones
を使います。
0でも1でもなく、任意の値ですべての要素を初期化したい場合には、numpy.full
を使います。
numpy.zeros_like
に対応する、numpy.full_like
も用意されていますのでこちらも合わせて紹介します。
numpy.full関数の使い方
引数でshape(形状)と初期化に使う値を指定するだけです。多次元配列を生成する場合、シーケンス(リストやタプル)で指定する点に注意しましょう。
以下の例では、"要素数5の配列" と "2×3の2次元配列" を生成しています。各要素の値が引数で指定した値になっていることを確認できます。
import numpy as np
a = np.full(5, 0.1) # 要素数5の配列
print(a)
# [ 0.1 0.1 0.1 0.1 0.1]
b = np.full((2, 3), 10) # 2×3の2次元配列をシーケンス(リストやタプル)で指定
print(b)
# [[10 10 10]
# [10 10 10]]
numpy.full関数のパラメータ
numpy.full(shape, fill_value, dtype=None, order='C')
パラメータ | 型 | 説明 |
---|---|---|
shape | int, intのシーケンス | 生成される配列の形状を指定します。多次元配列の場合はシーケンスで指定します。例: 2×3の配列なら [2, 3] もしくは (2, 3) |
fill_value | scalar | 生成される配列の各要素の初期値となる値を指定します。 |
dtype | dtype | 省略可能。出力配列の型を指定します。※省略した場合は fill_value の型となります。 |
order | string | 省略可能。データをメモリ上にどのように保持するかを、'C' もしくは 'F' で指定します。C言語とFortanのいずれかです。 |
return値として、指定した shape, dtype の ndarray(全要素fill_value) を返します。
以下のように使用します。
import numpy as np
# 3×3の初期値3の配列
a = np.full((3, 3), 3, dtype="float", order="F")
print(a)
# [[ 3. 3. 3.]
# [ 3. 3. 3.]
# [ 3. 3. 3.]]
# 要素数10、初期値99、型float32の配列
b = np.full(10, 99, dtype="float32")
print(b)
# [ 99. 99. 99. 99. 99. 99. 99. 99. 99. 99.]
初期値として指定した値で全要素が埋められているのが確認できます。
numpy.full_like関数の使い方
ある配列とまったく同様の性質(shape, dtype等)をもった配列を新しく生成し、要素を指定の値で初期化するには、numpy.full_like
を使います。numpy.full
で同じことを実現するよりもすっきり記述できます。
以下に例を示します。
import numpy as np
# 配列aがある
a = np.arange(1, 10, dtype="float")
# 配列aと同じ形状や型の配列を初期値9で初期化したものを生成したい
# b = np.full(a.shape, dtype=a.dtype, 9)
# ↑ のように書くよりもわかりやすい
b = np.full_like(a, 9)
print(a) # [ 1. 2. 3. 4. 5. 6. 7. 8. 9.]
print(b) # [ 9. 9. 9. 9. 9. 9. 9. 9. 9.]
numpy.full_like関数のパラメータ
numpy.full_like(a, fill_value, dtype=None, order='K', subok=True)
パラメータ | 型 | 説明 |
---|---|---|
a | array_like | 生成する配列と同じ形状や型を持つ配列を指定します。Pythonのシーケンスでも指定可能です。 |
fill_value | scalar | 生成される配列の各要素の初期値となる値を指定します。 |
dtype | dtype | 省略可能。出力配列の型を指定します。※省略した場合は aの型を継承します。 |
order | string | 省略可能。データをメモリ上にどのように保持するかを、'C','F','A','K' でから指定します。デフォルトは 'K' で元の配列と同じメモリレイアウトを継承します。 |
return値として、与えられた配列と同じ形と型を持った、指定した値で初期化された配列(ndarray)を返します。
まとめ
numpy.full
は指定した形状の配列を指定した値で初期化したものを生成する。numpy.full_like
は継承元となる配列を指定し、同じ形状や型を持った配列を指定した値で初期化したものを生成する。
以上。