我是NumPy的新手,並且遇到了在numpy數組上運行一些條件語句的問題。比方說,我有一個看起來像這樣3個numpy的數組:對numpy數組的條件操作
一個:
B:
[[6, 9, 8, 6],
[7, 7, 9, 6],
[8, 6, 5, 7]]
和c:
[[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
我有一個條件語句對於a和b,我希望使用b的值(如果符合a和b的條件)來計算c的值:
c[(a > 3) & (b > 8)]+=b*2
我得到一個錯誤說:
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
ValueError: non-broadcastable output operand with shape (1,) doesn't match the broadcast shape (3,4)
任何想法如何,我可以做到這一點?
我想C的輸出如下所示:
[[0, 18, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
謝謝!在每個人工作的同時讚揚每個人。我接受了來自@Psidom的np.where的答案,因爲它對我來說最有意義並且運行速度最快(我的實際腳本將運行這些條件幾百萬次) – bobby12345