gpt4 book ai didi

python - 将 numpy float 组转换为整数,替换 NaN 值

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:00 24 4
gpt4 key购买 nike

我有一个包含值和 NaN 的 float64 numpy 数组:

[[ 5. nan nan nan nan nan nan nan nan nan nan nan nan]
[nan 6. nan nan nan nan nan nan nan nan nan nan nan]
[nan 7. 5. nan nan nan nan nan nan nan nan nan nan]
[nan nan nan 7. nan nan nan nan nan nan nan nan nan]
[nan nan nan nan 4. nan nan nan nan nan nan nan nan]
[nan nan nan nan 5. 3. nan nan nan nan nan nan nan]
[nan nan nan nan nan nan nan nan nan nan nan nan nan]
[ 1. nan nan nan nan nan nan 4. nan nan nan nan nan]
[nan nan nan nan nan nan 7. nan nan nan nan nan nan]
[nan nan nan nan nan nan nan nan nan 7. nan nan nan]
[nan nan nan nan nan nan 7. nan 7. nan 6. nan nan]
[nan nan nan nan nan nan nan nan nan nan nan 7. nan]
[nan nan nan nan nan nan nan 6. nan nan nan nan 5.]]

我想将所有数字转换为整数,但 np.roundnp.around 似乎无法完成这项工作。另外,我无法更改数组的类型,因为整数类型的数组不支持“nan”。我该怎么做?

最佳答案

将 NaN 转换为零: numpy.nan_to_num(arr) , 直接作用于数组,以及单个值。 (使用 ..., copy=False arg 避免浪费内存,即就地操作。)

所以要同时进行 NaN 替换和类型转换:numpy.nan_to_num(arr).astype(np.int)

from numpy import array, nan
arr = np.array([[5., nan, nan], [nan, 6., nan], [nan, 7., 5.]])

arr = np.nan_to_num(arr, copy=False).astype(np.int)
array([[5, 0, 0],
[0, 6, 0],
[0, 7, 5]])

将 NaN 转换为任何其他特定值:您没有说要用什么值替换 NaN 。如果你想要一个不同于零的替换值,你需要使用逻辑索引来实现:arr[np.isnan(arr)] = -99 然后 .astype(np.int )

关于python - 将 numpy float 组转换为整数,替换 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53697414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com