私は初期化したいいくつかの配列を持っています。配列にデータが格納されないように各配列をループしたいのですが、何らかの方法で初期化されますが、データが保持されていればnumpy.stack
によって新しいデータが追加されます。 numpy、連結または初期化のループの選択
a = np.array(0)
b = np.array(0)
c = np.array(0)
while True:
data_set_num = infile.readline()
if not data_set_num: break
for arr in (a, b, c):
new_arr = get_new_array(infile)
try:
arr = np.stack((arr, new_arr))
except:
arr = np.array(new_arr)
しかし、ループの実行後に、私は何もありません:私はこれを試してみました
b
と
c
のための同じ
>>> a.shape
()
を。明らかに私はどのようにarr
が3つの配列を参照するのか分からなかった。誰でも私がやろうとしていることをする方法を知っていますか?私は、もちろん、内側のループを展開することができますが、それはひどく "unpythonic"と思われます。
バグを修正しても、繰り返しの連結は非常に非効率的に配列を操作する方法です。 – user2357112
'arr'は配列を1つずつ参照します。次に、 'np.stack((arr、new_arr))'または 'np.array(new_arr)'に置き換えられます。どちらも新しい配列を返します。 'arr'という名前は' a'や 'b'や' c'ではなく、新しい参照に束縛されます。 –
@Mad Physicistはい、私は今理解しています。今私の質問は、私は私がする必要があることをどうやって行うのですか?ありがとう。 –