gpt4 book ai didi

python - 使用 numpy.select 避免 div/0 错误

转载 作者:行者123 更新时间:2023-11-28 22:02:59 26 4
gpt4 key购买 nike

我正在尝试使用 numpy.select 有条件地为数组赋值。但是,使用 select 需要计算所有可能的赋值而不仅仅是相关赋值,这可能会导致 div/0 错误,例如:

import numpy as np
def testfunc(z):
conditionlist = [z < 0, z == 0, z > 0]
choicelist = [1 / z, 0, 1 + z]
return np.select(conditionlist, choicelist)

if __name__ == "__main__":

print testfunc(np.array([0]))

此代码将失败并出现 div/0 错误,尽管 1/z where z = 0 实际上永远不需要分配给返回的数组。

如何在不遇到 div/0 错误的情况下有条件地为 numpy 数组赋值?循环是唯一的选择吗?

最佳答案

np.select([z < 0, z == 0, z > 0], [1 / (z + (z == 0)), 0, 1 + z])

z == 0 给出一个 bool 数组。将此添加到 z 会得到一个没有零元素的数组,该数组等于 z 用于 np.select 将使用的索引。

关于python - 使用 numpy.select 避免 div/0 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10261931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com