我尝试将两个3维的numpy数组连接起来。
我实际上尝试使用np.append
和np.concatenate
。
我要连接的尺寸为
((10, 61, 1) (1, 0, 0))
。
所以我想保存相同的结构。最终结果是这个大小()的东西,因此Python将所有内容放到同一尺寸上
matrix_results_final = np.empty((1,0,0), float)
vec_y_labels_final = np.empty((1), int)
dict_minmax_scall = searchMinMaxValuesRawDataByElectrode(raw_data)
for electrode_number in electrode_numbers:
#... Some code
matrix_results_final = np.append(matrix_results_final, matrix_results)
其中matrix_results_final为(1,0,0)
,matrix_results(10,61,1)
所以我想在第一次迭代中挥舞(matrix_results_final(10,61,1),在第二次迭代中挥舞(20,61,1),...
我没有任何错误消息。
答案 0 :(得分:0)
如果我正确理解了您想在循环中添加一些数据,例如:
import numpy as np
arr = np.random.rand(10,61,1)
for i in range(3):
print(arr.shape)
arr2 = np.random.rand(10,61,1)
arr = np.concatenate([arr,arr2],axis=0)
print(arr.shape)
(10, 61, 1)
(20, 61, 1)
(30, 61, 1)
(40, 61, 1)
请注意,首先分配具有 final 形状的空数组然后填充它会更有效(因此我们不必寻找新的内存空间-因为该数组不需要更改大小-在每次迭代中
arr = np.zeros((40,61,1))
for i in range(4):
ii = i * 10
arr[ii:ii+10,:,:] = np.random.rand(10,61,1)