You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于条件将NumPy数组中的负值转换为np.nan

将数组中的负值转换为np.nan的实现方法

没问题!把用作缺失值标记的负数转换成np.nan是NumPy里非常常见的操作,我给你两种简单好用的实现方式:

首先别忘了先导入NumPy库:

import numpy as np

方法1:布尔索引直接修改原数组

这是最直观的方式——用布尔掩码定位所有小于0的元素,直接替换成np.nan:

# 示例原数组(包含作为缺失值的负数)
original_array = np.array([1, -2, 3, -4, 5, -6])
# 执行转换
original_array[original_array < 0] = np.nan
# 查看结果
print(original_array)
# 输出:[ 1. nan  3. nan  5. nan]

⚠️ 小提示:如果你的原数组是整数类型,替换后会自动转为浮点型,因为np.nan本身是浮点类型,这是正常的转换,不用担心。

方法2:用np.where生成新数组(保留原数组)

如果你不想改动原始数据,而是生成一个新的处理后数组,np.where会是更合适的选择:

original_array = np.array([1, -2, 3, -4, 5, -6])
# 按条件生成新数组:满足array<0则替换为np.nan,否则保留原数值
new_array = np.where(original_array < 0, np.nan, original_array)
print(new_array)
# 输出同样为:[ 1. nan  3. nan  5. nan]

二维数组(表格型数据集)的适配

如果你的数据集是二维数组(比如常见的表格数据),这两种方法完全通用,NumPy会自动对整个数组做元素级的判断和替换:

# 二维数组示例
original_2d = np.array([[1, -2], [-3, 4], [5, -6]])
original_2d[original_2d < 0] = np.nan
print(original_2d)
# 输出:
# [[ 1. nan]
#  [nan  4.]
#  [ 5. nan]]

内容的提问来源于stack exchange,提问作者Max Collier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:12:28