Numpy插入NaN报错cannot convert float NaN to integer如何解决
报错原因
- 你初始化的NumPy数组
A传入的元素全是整数,NumPy会默认将其数据类型设为整数型(int)。 NaN是浮点数类型的特殊值,整数类型的数组没有对应编码可以存储NaN,插入操作尝试把浮点型NaN转换为整数时就会触发ValueError: cannot convert float NaN to integer报错。
修复方案
只需要在初始化数组时显式指定数据类型为浮点型float,让数组支持存储NaN值即可,修改后的完整代码如下:
import numpy as np from numpy import NaN # 显式指定dtype为float,兼容NaN存储 A = np.array([10, 20, 30, 40, 50, 60, 70], dtype=float) C = [2, 4] A = np.insert(A, C, NaN, axis=0) print("A =", [A])
运行上述代码即可得到符合预期的结果:
[array([10., 20., nan, 30., 40., nan, 50., 60., 70.])]
注:输出里的
10.是浮点数的默认显示格式,数值逻辑和你期望的结果完全一致,如果需要调整显示样式可以通过NumPy的打印配置参数修改,不影响实际数值计算。
内容的提问来源于stack exchange,提问作者Wiz123
相关产品推荐
相关产品推荐

