我如何有条件地改变一个numpy数组中的数值,并考虑到nan数?

我的数组是一个二维矩阵,除了负数和正数之外,还有numpy.nan的值,我想用一个数字代替所有正数,用另一个数字代替所有负数。

>>> array
array([[        nan,         nan,         nan, ..., -0.04891211,
            nan,         nan],
   [        nan,         nan,         nan, ...,         nan,
            nan,         nan],
   [        nan,         nan,         nan, ...,         nan,
            nan,         nan],
   ..., 
   [-0.02510989, -0.02520096, -0.02669156, ...,         nan,
            nan,         nan],
   [-0.02725595, -0.02715945, -0.0286231 , ...,         nan,
            nan,         nan],
   [        nan,         nan,         nan, ...,         nan,
            nan,         nan]], dtype=float32)

我想用一个数字替换所有的正数,用另一个数字替换所有的负数。

我如何使用pythonnumpy来执行?

(声明一下,这个矩阵是geoimage的结果,我想对其进行分类)

解决方案:

事实上,你有 np.nan 在你的数组中应该没有关系。只需使用花哨的索引。

x[x>0] = new_value_for_pos
x[x<0] = new_value_for_neg

如果你想替换你的 np.nans:

x[np.isnan(x)] = something_not_nan

更多关于花式索引的信息 教程NumPy文档.

给TA打赏
共{{data.count}}人
人已打赏
解决方案

用apache2重定向我的nodejs应用程序的端口。

2022-5-14 16:00:16

解决方案

试图将输入数据作为一个json请求传递给API。

2022-5-14 16:00:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索