numpy配列を初期化する [重複] 質問する

numpy配列を初期化する [重複] 質問する

シェイプの NumPy 配列を初期化して追加する方法はありますか? リストの例を使用して必要なことを説明します。ループで生成されたオブジェクトのリストを作成する場合は、次のようにします。

a = []
for i in range(5):
    a.append(i)

numpy 配列で同様のことをしたいです。 vstack、concatenate などについては知っています。ただし、これらには入力として 2 つの numpy 配列が必要なようです。必要なのは次のものです。

big_array # Initially empty. This is where I don't know what to specify
for i in range(5):
    array i of shape = (2,4) created.
    add to big_array

big_arrayの形になるはずです(10,4)。どうすればいいでしょうか?


編集:

big_array = numpy.zeros((10,4))次の説明を追加したいと思います。定義してから埋めることができることは知っています。ただし、そのためには、big_array のサイズを事前に指定する必要があります。この場合、サイズはわかっていますが、わからない場合はどうなりますか? .appendPython でリストを拡張する関数を使用する場合、最終的なサイズを事前に知る必要はありません。空の配列から始めて、小さな配列から大きな配列を作成するための同様のものがあるかどうか疑問に思っています。

ベストアンサー1

numpy.zeros

指定された形状とタイプを持ち、ゼロで埋められた新しい配列を返します。

または

numpy.ones

指定された形状とタイプを持ち、1 で埋められた新しい配列を返します。

または

numpy.empty

エントリを初期化せずに、指定された形状とタイプの新しい配列を返します。


ただし、リストに要素を追加して配列を構築するという考え方はあまり効率的ではないため、numpy ではあまり使用されません (numpy のデータ型は、基礎となる C 配列に非常に近いです)。代わりに、必要なサイズに配列を事前に割り当ててから、行を埋める必要があります。ただし、numpy.append必要な場合は使用できます。

おすすめ記事