2017-07-21 5 views
2

私は正と負の値を持つNumpy配列を持っています。正の数またはゼロ(funcPos)に関数を適用し、負の数(funcNeg)に異なる関数を適用して、結果を別の配列として取得する必要があります。配列の異なる部分で異なる機能を実行します。 Python 3

私はnumpy.where機能が存在しているはずなので、私は何ができる:

y = np.where(x >= 0, funcPos(x), funcNeg(x)) 

しかし、これは、それらの機能があるため、プロセスで多くのエラーをtrowing、入力配列のすべての要素にfuncPosとfuncNegを適用間違った記号の数を扱うようには設計されていません。

これを高速に実行する方法(ループを使用しない方法)に関するご提案はありますか?

多くのおかげで、

+1

あなたはXのサブセットでfuncPosとfuncNegを呼び出し、その結果を組み合わせることだろうか? –

答えて

5

私は次のことをお勧めしたい:

y = np.zeros(x.shape) y[x >= 0.] = funcPos(x[x >= 0.]) y[x < 0.] = funcNeg(x[x < 0.])

+0

多くの感謝!これは魅力的に機能しました。 – dalonsoa

関連する問題