我是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