替换数组中的值

新手上路,请多包涵

作为数组操作中另一个值的替换值,或者如何在数组中搜索并用另一个值替换一个值

例如:

 array ([[NaN, 1., 1., 1., 1., 1., 1.]
       [1., NaN, 1., 1., 1., 1., 1.]
       [1., 1., NaN, 1., 1., 1., 1.]
       [1., 1., 1., NaN, 1., 1., 1.]
       [1., 1., 1., 1., NaN, 1., 1.]
       [1., 1., 1., 1., 1., NaN, 1.]
       [1., 1., 1., 1., 1., 1., NaN]])

它可以用 0 替换 NaN。感谢您的任何回复

原文由 ricardo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 448
2 个回答

你可以这样做:

 import numpy as np
x=np.array([[np.NaN, 1., 1., 1., 1., 1., 1.],[1., np.NaN, 1., 1., 1., 1., 1.],[1., 1., np.NaN, 1., 1., 1., 1.], [1., 1., 1., np.NaN, 1., 1., 1.], [1., 1., 1., 1., np.NaN, 1., 1.],[1., 1., 1., 1., 1., np.NaN, 1.], [1., 1., 1., 1., 1., 1., np.NaN]])
x[np.isnan(x)]=0

np.isnan(x) x 一个布尔阵列,它是 True NaN x[ boolean_array ] = 0 使用 花式索引 在布尔数组的任何位置分配值 0 True

有关花式索引的精彩介绍等,另请参阅 numpybook

原文由 unutbu 发布,翻译遵循 CC BY-SA 4.0 许可协议

这些天有一个特殊的功能:

 a = numpy.nan_to_num(a)

原文由 clh 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题