私はnumpy.where
を使用していますが、使用されていないパラメータを呼び出さないようにする簡単な方法があるかどうかは疑問でした。例:numpy.where:評価パラメータを遅らせる方法は?
import numpy as np
z = np.array([-2, -1, 0, 1, -2])
np.where(z!=0, 1/z, 1)
リターン:
array([-0.5, -1. , 1. , 1. , -0.5])
しかしz
が0だったとき、それはそれを使用していなくても、コードはまだ1/z
を評価するので、私はゼロ警告による除算を取得します。
なぜz = z [np.nonzero(z)]をzで除算するのですか?しかし、それはちょうど1を返します。理由はわかりません。 –
'1/z'がインタープリタによって'where'を呼び出す部分。それは 'どこで'の管理下にありません。しかし、あなたは 'out [ind] = 1/z [ind]'を実行できます。ここで 'ind'はok値のマスクです。ゼロで割り切れる方法は他にもあります。 – hpaulj
[numpy]タグと[divide-by-zero]タグを検索する – hpaulj