我有两个 numpy.ndarray,我找到了一个不优雅的解决方案(使用超过 4 行代码)用 data1 屏蔽 data2。我要求一个优雅的解决方案,节省线路:
例子。
data1 = np.array([[1,2,np.nan,4,5],[np.nan,7,np.nan,9,np.nan],[11,12,13,14,np.nan],[np.nan,17,np.nan,19,20]])
data2 = np.ones((6, 4))
print data1
[[ 1. 2. nan 4. 5.]
[ nan 7. nan 9. nan]
[ 11. 12. 13. 14. nan]
[ nan 17. nan 19. 20.]]
>>> print data2
[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]
我希望得到的结果是:
[[ 1. 2. 1 4. 5.]
[ 1 7. 1 9. 1]
[ 11. 12. 13. 14. 1]
[ 1 17. 1 19. 20.]]
换句话说,其中 data1 是 nan data2 的值
提前感谢您的帮助和建议。我用超过 4 行代码做到了这一点