我有一个形状为 (14, 3200, 2500) 的数组 a。
我想从中提取非 nan 值到一个形状为 (-1, 14) 的数组。
这是我的当前代码:
nans = ~(np.isnan(a)).any(axis=0)
indices = np.where(nans)
vals = np.asarray([a[:, i, j] for i, j in zip(indices[0], indices[1])])
但我认为我应该将列表推导式更改为numpy内置函数,但是找不到一个能做到这一点的函数,因为这似乎并不快。有人有好的建议吗?
编辑: 我还在尝试获取这些值的索引,所以我的输出应该是形状为(-1, 14)、(-1, 2)的数组。 第二个数组是用以下代码生成的:
np.stack((indices[0],indices[1])).transpose()
因此,列表推导应保留顺序。