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

如何用Numpy实现基于数值条件的原始数据校准操作

用Numpy替代循环实现数据校准

你的原始循环逻辑是对不同区间的数值做乘法校准,用Numpy可以通过批量数组操作替代循环,效率更高,代码更简洁。

原始循环代码

arr = list(range(1000)) # random array
for i in range(len(arr)):
    if arr[i] > 200 and arr[i] < 500:
        arr[i] = arr[i]*2.5
    elif arr[i] >= 500 and arr[i] < 1000:
        arr[i] = arr[i]*2.3

Numpy实现方法

方法一:布尔索引(直观易读)

利用Numpy的布尔索引直接定位目标区间的元素,批量修改:

import numpy as np

# 将列表转为numpy数组
arr = np.arange(1000)

# 筛选200 < 数值 < 500的元素,乘2.5
mask1 = (arr > 200) & (arr < 500)
arr[mask1] *= 2.5

# 筛选500 ≤ 数值 < 1000的元素,乘2.3
mask2 = (arr >= 500) & (arr < 1000)
arr[mask2] *= 2.3

方法二:np.where(链式逻辑,一行完成)

用np.where()嵌套实现多条件判断,一次性完成所有替换:

import numpy as np

arr = np.arange(1000)
arr = np.where(
    (arr > 200) & (arr < 500), 
    arr * 2.5,
    np.where(
        (arr >= 500) & (arr < 1000), 
        arr * 2.3, 
        arr  # 不满足条件的元素保持原值
    )
)

两种方法都能实现和原循环完全一致的效果,且数据量越大,Numpy的批量操作优势越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:05:58