我正在尝试使用 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 错误,尽管实际上不需要将 z = 0 的 1 / z 分配给返回的数组。
如何在不遇到 div/0 错误的情况下有条件地为 numpy 数组赋值?循环是唯一的选择吗?