14

100要素の配列にゼロを埋める方法を知っています:

np.zeros(100)

しかし、それを 9 で埋めたい場合はどうすればよいでしょうか。

4

4 に答える 4

22

以下を使用できます。

a = np.empty(100)
a.fill(9)

または、スライス構文を好む場合も:

a[...] = 9

np.emptyなどと同じですがnp.ones、データを初期化しないため、少し速くなる可能性があります。

新しい numpy バ​​ージョン (1.8 以降) では、次のものもあります。

np.full(100, 9)
于 2012-11-02T13:08:23.133 に答える
2

配列全体で同じ値が必要で、変更したくない場合は、ストライドをゼロにしてトリックを実行できます。この方法では、単一の値に対してメモリを使用するだけです。ただし、任意のサイズと形状の仮想 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])

ただし、いずれかの要素を変更すると、配列内のすべての値が変更されることに注意してください。

于 2012-11-02T09:43:03.960 に答える
1

この質問は以前にある程度議論されています.NumPy配列の初期化(同一の値で埋める)を参照してください.どのメソッドが最も速いかについても.

于 2012-11-02T20:28:45.103 に答える
-1

私が見る限り、配列を9で埋める専用の関数はありません。したがって、を使用して空の(つまり初期化されていない)配列を作成np.empty(100)し、ループ内の9などで埋める必要があります。

于 2012-11-02T09:03:52.013 に答える