3

これは、FAQ に保存されているよく知られた質問かもしれませんが、Google で解決策を見つけることはできません。スカラー引数のスカラー関数を作成しようとしていますが、ndarray 引数を許可しています。ドメイン違反によって例外が発生する可能性があるため、関数はドメインの正確性について引数をチェックする必要があります。この例は、私がやろうとしたことを示しています。

import numpy as np
def f(x):
    x = np.asarray(x)
    y = np.zeros_like(x)
    y[x>0.0] = 1.0/x
    return y

print f(1.0)

y[x>0.0]=...Pythonの割り当てについては、 0-d arrays can't be indexed. この実行を解決する正しい方法は何ですか?

4

2 に答える 2

2

これは NumPy >= 1.9 で正常に動作します (これを書いている時点ではリリースされていません)。np.asarray以前のバージョンでは、追加の呼び出しで回避できます。

x[np.asarray(x > 0)] = 0
于 2014-02-10T22:54:59.223 に答える
1

f([1.0])代わりに電話していただけますか?

それ以外の場合は、次のことができます。

x = np.asarray(x)
if x.ndim == 0:
    x = x[..., None]
于 2013-09-01T17:45:18.290 に答える