我生成numpy的陣列序列如下:如何有效地vstack大序列的numpy數組塊?
def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
for i in chunker(X,10000):
e = function(i)
print('new marix',e)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
...
new matrix (10000, 3208)
我想vstack上述n
矩陣中的單獨一個。因此,我試過如下:
X = np.vstack(e)
然而,當我打印X
我又收到:
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
new matrix (10000, 3208)
...
new matrix (10000, 3208)
取而代之的是新的vstacked單個矩陣。任何想法如何vstack這個numpy數組序列?
更新
從傑德沃德的答案我編輯我的代碼如下:
進口numpy的爲NP
def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
for (r,i) in enumerate(chunker(X,10000)):
e = function(i)
print('new matrix',e)
X[r,:] = e
print(X)
'vstack'的輸入應該是一個匹配最後一個維度的數組列表。 'e'看起來不像那樣。您需要將個人'e'收集到列表中。 – hpaulj
在你的循環中,「e」的形狀是什麼? 'X'的? 'X [R,:]'? – hpaulj
X.shape =(878049,3208),e.shape =(10000,3208),merged [r,:]。shape =(3208,)。核心似乎已經死亡。它會自動重啓。感謝@hpaulj的幫助!我也越來越:'核心似乎已經死亡。它會自動重新啓動.' –