【发布时间】:2020-01-04 02:22:05
【问题描述】:
import numpy as np
我有一个 numpy 数组如下:
data = np.array([[2,3,4,5,0,7,8,9,9,3,np.nan],
[3,3,6,5,0,7,9,9,9,3,1],
[2,6,4,5,0,7,9,9,9,4,1]])
print (data)
我想从所有数字(按列)不为 0 的地方获取数据;并且任何元素都不是 np.nan。
indices = np.any(data, axis=1)
print (data[indices])
预计是:
[[2 3 4 5 7 8 9 9 3]
[3 3 6 5 7 9 9 9 3]
[2 6 4 5 7 9 9 9 4]]
我尝试如下掩码。
mask = np.all(np.isnan(data) | np.equal(data, 0), axis=1)
print (data[~mask])
[[ 2. 3. 4. 5. 0. 7. 0. 9. 9. 3. nan]
[ 3. 3. 6. 5. 0. 7. 9. 9. 9. 3. 1.]
[ 2. 6. 4. 5. 0. 7. 9. 9. 9. 4. 1.]]
但不是预期的结果
【问题讨论】:
-
使用
axis=0中的任何列,然后将其用于列索引 - docs.scipy.org/doc/numpy/reference/arrays.indexing.html -
请给我代码,我做不到