python 数组 缺失值

array=np.array([1,2,3,2,np.nan,4,3,4,5, np.nan]),先判断array数组是否有NaN值。若有,请将其中所有的NaN替换为0
第一问已解答
求如何用for循环来把nan值替换为0

不多说了,直接看代码吧,列举了三种方法


import numpy as np
import math


array = np.array([1, 2, 3, 2, np.nan, 4, 3, 4, 5, np.nan])
print(array)

# 法一
new_array1 = list(map(lambda x: 0.0 if math.isnan(x) else x, array))
print(new_array1)

# 法二 for循环
new_array2 = []
for x in array:
    if math.isnan(x):
        x = 0.0
    new_array2.append(x)
print(new_array2)

# 法三 np.nan_to_num()
new_array3 = np.nan_to_num(array)
print(new_array3)

运行结果:

img

import numpy as np

array = np.array([1, 2, 3, 2, np.nan, 4, 3, 4, 5, np.nan])
flag = np.isnan(array).any()
if flag:
    print("数组中存在NaN值")
    array = np.nan_to_num(array, nan=0)
    print("替换NaN值后的数组:", array)
else:
    print("数组中没有NaN值")


import numpy as np

# 方式一
array = np.array([1, 2, 3, 2, np.nan, 4, 3, 4, 5, np.nan])
flag = np.isnan(array).any()
if flag:
    #存在nan,直接使用 numpy 自带的函数替换
    array = np.nan_to_num(array,nan=0)
print(array)

# 方式二:使用for循环替换nan
array = np.array([1, 2, 3, 2, np.nan, 4, 3, 4, 5, np.nan])
flag = np.isnan(array).any()

for index,value in enumerate(np.isnan(array)):
    if value:
        array[index] = 0
print(array)


【以下回答由 GPT 生成】

import numpy as np

array = np.array([1, 2, 3, 2, np.nan, 4, 3, 4, 5, np.nan])
for i in range(len(array)):
    if np.isnan(array[i]):
        array[i] = 0

print(array)

这里使用了一个简单的for循环来遍历数组中的每个元素。通过使用np.isnan()函数判断元素是否为NaN,如果是NaN,就将该元素替换为0。最后输出替换后的数组。

输出结果为:

[1. 2. 3. 2. 0. 4. 3. 4. 5. 0.]


【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^