替换数组中的值

ric*_*rdo 15 python numpy

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

例如:

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]])
Run Code Online (Sandbox Code Playgroud)

在哪里它可以取代NaN 0.感谢任何回应

unu*_*tbu 31

你可以这样做:

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
Run Code Online (Sandbox Code Playgroud)

np.isnan(x)返回一个布尔值阵列,其是True无论xNaN. x[ boolean_array ] = 0使用花式索引在布尔数组所在的位置赋值0 True.

有关精美索引的详细介绍等等,另请参阅numpybook.


小智 14

这些天有特殊的功能:

a = numpy.nan_to_num(a)
Run Code Online (Sandbox Code Playgroud)

  • 但这将涉及一个与```a```具有相同类型和形状的临时变量,它对大型矩阵很重要. (2认同)