【问题标题】:Intersection of two 2-D numpy arrays with unequal rows and columns具有不相等行和列的两个二维 numpy 数组的交集
【发布时间】:2020-10-31 20:43:21
【问题描述】:

我有 2 个数组,一个是形状 (455,98),另一个是形状 (182,472)。几何描述根据所附图像。有没有一种pythonic方法可以做到这一点?我也很乐意收到有关如何编写函数来实现此目的的指导。

【问题讨论】:

  • 编辑:非常抱歉,我的问题缺少关键信息。我想将交叉区域中的值提取为新数组 Array C.
  • 我终于在这里找到了解决问题的方法:stackoverflow.com/questions/642763/…

标签: python arrays numpy indexing intersection


【解决方案1】:

不知道我是否完全理解你的问题。但是,此代码会将来自 ab 数组的数字添加到交集内。

import numpy as np

a = np.ones((455,98))
b = np.ones((182,472))

c = a[:b.shape[0], :a.shape[1]] + b[:b.shape[0], :a.shape[1]]

print(c)
print(c.shape)

也可以使用类似的东西:

c = np.dstack((a[:b.shape[0], :a.shape[1]], b[:b.shape[0], :a.shape[1]]))

从每个数组中检索两个元素。

【讨论】:

  • 顺便说一句,它可以更短地表示为c = a[:b.shape[0], :] + b[:, :a.shape[1]]
  • 还要严格图片与a的交叉点取a的最后一行而不是第一行。 IE。正确的方法是c = a[max(0, a.shape[0] - b.shape[0]):, :] + b[:, :a.shape[1]]。如果您为上排和下排提供两种解决方案的变体,那就太好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多