首页 > 解决方案 > 创建/附加 Numpy 数组

问题描述

我有两个形状为 (8760,1) 的 numpy 数组,我想将它们组合成一个数组,即 (8760,2),然后从中过滤掉可能在第一个索引列或仪表中的任何零值在“数据”中,以便我可以使用临时数组进行统计操作。我已经尝试过 np.stack,然后尝试以这种方式过滤掉任何零值,但最终我的临时数组是 3D 而不是 2D。

data=np.stack((mb, gauge), axis=-1)
dta = data[:,data!=0]
idx = np.where(data[:,1]>0)
temp = data[idx,:]

我知道我可以先从仪表中过滤掉零,但我想保留与 mb 数组一起使用的索引值

标签: arraysnumpystackappend

解决方案


np.stack沿新创建的轴连接。因此,您的阵列变为 3D。

要沿现有轴加入,您可以使用np.concatenate

a1 = np.empty((100, 1))
a2 = np.empty((100, 1))
a3 = np.concatenate((a1, a2), axis=1) # will give a (100, 2) array


推荐阅读