要串联两个3D矩阵(10,61,1)

时间:2019-07-17 14:47:35

标签: python-3.x numpy

我尝试将两个3维的numpy数组连接起来。

我实际上尝试使用np.appendnp.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),...

我没有任何错误消息。

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)