【问题标题】:Subtract two arrays, keep only values where the other has no data减去两个数组,只保留另一个没有数据的值
【发布时间】:2014-08-07 00:18:57
【问题描述】:

我一直在尝试减去(并组合乘法等)两个 Numpy 数组,以便生成的数组仅在其他数组没有数据的地方保留值。

如果我有矩阵 a 和 b,a-b 会给出 c:

a = np.array([0,2,3,0])
b = np.array([1,0,3,0])
c = np.array([0,2,0,0])

我已经尝试将 b 与一个非常大的数字相乘,但后来我不知道如何摆脱负值。还有就是数组 a 和 b 的缺失值为 -999。

非常感谢您的帮助!谢谢!

【问题讨论】:

  • 另一个数组没有数据的地方 - 还有什么数组? a,b,两者都有?
  • 如果 b 在某处有一个值 !=0,我需要从 a (->c) 创建一个新数组,这样它的 0 与 b 的值 !=0 相同。

标签: python arrays numpy


【解决方案1】:

这个怎么样?

>>> a = np.array([0,2,3,0])
>>> b = np.array([1,0,3,0])
>>> a[b!=0] = 0
>>> a
array([0, 2, 0, 0])

【讨论】:

  • 这似乎可行,谢谢!虽然我的脚本得到“AttributeError:'int'对象没有属性'shape'”,但这可能与matplotlib和pcolormesh等有关。我应该将此标记为已回答吗?
  • 这是另一个问题,与此无关。你似乎在做m.shape,其中m 是一个整数,而不是ndarray
  • 是的,我知道这是另一个问题,感谢@AshwiniChaudhary 提供快速有效的解决方案!我只是无法用手机将其标记为已接听,所以我认为我缺乏足够的声誉或其他东西。有时需要足够的声誉来投票给一个好的答案,这很可悲。
猜你喜欢
  • 2022-09-22
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 2014-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多