1. ホーム
  2. パイソン

[解決済み】NumPyの配列の初期化(同じ値で埋める)。

2022-03-27 15:10:12

質問

私は、長さ n であり、その各要素は v .

よりも良いものはないのか。

a = empty(n)
for i in range(n):
    a[i] = v

知っている zerosones は、v = 0, 1 に対して機能します。 v * ones(n) しかし、それは の場合、動作しません。 vNone であり、また の方がはるかに遅いと思います。

解決方法は?

NumPy 1.8を導入しました。 np.full() よりも直接的な方法である empty() に続いて fill() は、特定の値で満たされた配列を作成するためのものです。

>>> np.full((3, 5), 7)
array([[ 7.,  7.,  7.,  7.,  7.],
       [ 7.,  7.,  7.,  7.,  7.],
       [ 7.,  7.,  7.,  7.,  7.]])

>>> np.full((3, 5), 7, dtype=int)
array([[7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7]])

これは間違いなく その は、特定の値で満たされた配列を作成する方法です。なぜなら、何を達成するのかを明示的に記述しているからです(そして、非常に特定のタスクを実行するため、原理的に非常に効率的です)。