シェイプの 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 のサイズを事前に指定する必要があります。この場合、サイズはわかっていますが、わからない場合はどうなりますか? .append
Python でリストを拡張する関数を使用する場合、最終的なサイズを事前に知る必要はありません。空の配列から始めて、小さな配列から大きな配列を作成するための同様のものがあるかどうか疑問に思っています。
ベストアンサー1
指定された形状とタイプを持ち、ゼロで埋められた新しい配列を返します。
または
指定された形状とタイプを持ち、1 で埋められた新しい配列を返します。
または
エントリを初期化せずに、指定された形状とタイプの新しい配列を返します。
ただし、リストに要素を追加して配列を構築するという考え方はあまり効率的ではないため、numpy ではあまり使用されません (numpy のデータ型は、基礎となる C 配列に非常に近いです)。代わりに、必要なサイズに配列を事前に割り当ててから、行を埋める必要があります。ただし、numpy.append
必要な場合は使用できます。