0

我有一个 numpy ndarray 我想执行一个简单的逐行操作来获取一个值

new_val = np.where((data['val'][:,0,1,0] > 0 and data['val'][:,0,0,0] > 0), ((data['val'][:,0,1,0] + data['val'][:,0,0,0])/2),\
          np.where((data['val'][:,0,1,0] > 0 and data['val'][:,0,0,0] == 0), data['val'][:,0,1,0], \
          np.where((data['val'][:,0,0,0] > 0 and data['val'][:,0,1,0] == 0), data['val'][:,0,0,0], 0)))

我收到一条错误消息,指出我需要使用 .any 或 .all。基本上我想要的是第一个条件将两个数字相加并除以二。如果其中一个是 0,则只留下它不为 0 的那个。如果两者都是 0,则给零。我如何实现这一目标?

我收到了可怕的

具有多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()。我该如何解决?

4

0 回答 0