100要素の配列にゼロを埋める方法を知っています:
np.zeros(100)
しかし、それを 9 で埋めたい場合はどうすればよいでしょうか。
以下を使用できます。
a = np.empty(100)
a.fill(9)
または、スライス構文を好む場合も:
a[...] = 9
np.empty
などと同じですがnp.ones
、データを初期化しないため、少し速くなる可能性があります。
新しい numpy バージョン (1.8 以降) では、次のものもあります。
np.full(100, 9)
配列全体で同じ値が必要で、変更したくない場合は、ストライドをゼロにしてトリックを実行できます。この方法では、単一の値に対してメモリを使用するだけです。ただし、任意のサイズと形状の仮想 numpy 配列が得られます。
>>> import numpy as np
>>> from numpy.lib import stride_tricks
>>> arr = np.array([10])
>>> stride_tricks.as_strided(arr, (10, ), (0, ))
array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10])
ただし、いずれかの要素を変更すると、配列内のすべての値が変更されることに注意してください。
この質問は以前にある程度議論されています.NumPy配列の初期化(同一の値で埋める)を参照してください.どのメソッドが最も速いかについても.
私が見る限り、配列を9で埋める専用の関数はありません。したがって、を使用して空の(つまり初期化されていない)配列を作成np.empty(100)
し、ループ内の9などで埋める必要があります。