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 配列に値を割り当てるにはどうすればよいですか? ループは唯一のオプションですか?