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

是否存在无需显式类型检查的Numpy函数替代自定义索引选择函数?

用Numpy官方函数替代自定义的np_ifelse函数

你自定义的np_ifelse实现的「根据布尔条件选择标量/数组结果」的功能,完全可以用Numpy内置的np.where()函数替代,它天然兼容标量和数组输入,不需要手动做类型检查,代码更简洁优雅。

np.where()的用法

np.where(condition, val1, val2)的逻辑和你自定义的函数完全一致:

  • 当condition是标量布尔值时,直接返回val1(若condition为True)或val2(若condition为False)
  • 当condition是布尔数组时,返回一个和condition形状相同的数组,每个位置根据对应条件选择val1或val2

替代示例

直接用np.where()替换你的自定义函数即可,无需额外判断:

import numpy as np

# 标量输入场景
ind_scalar = True
v1 = 10.0
v2 = 20.0
print(np.where(ind_scalar, v1, v2))  # 输出:10.0

# 数组输入场景
ind_arr = np.array([True, False, True])
print(np.where(ind_arr, v1, v2))  # 输出:array([10., 20., 10.])

另外np.where()还支持更灵活的扩展场景:比如val1和val2也可以是和condition形状匹配的数组,实现逐元素的条件选择,功能比你自定义的函数更强大。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:55:58