【发布时间】:2015-10-10 05:45:58
【问题描述】:
我有一个二维 numpy 数组,如下所示:
a = np.array([[1,5,9,13],
[2,6,10,14],
[3,7,11,15],
[4,8,12,16]]
我想在不重复元素的情况下将其提取为 2 x 2 大小的补丁。
答案应该完全一样。这可以是具有相同元素顺序的 3-d 数组或列表,如下所示:
[[[1,5],
[2,6]],
[[3,7],
[4,8]],
[[9,13],
[10,14]],
[[11,15],
[12,16]]]
如何轻松做到?
在我的实际问题中,a 的大小是 (36, 72)。我不能一一做。我想要程序化的方式。
【问题讨论】:
-
我在stackoverflow.com/questions/26871083/… 更新了我的答案。鉴于这个问题和stackoverflow.com/questions/31494190/…,我认为我们可以将这个问题作为骗子关闭。
-
@WarrenWeckesser 你能在这里告诉我,当我在我的问题中手动提取补丁时,你将如何提取补丁?
-
@WarrenWeckesser 这不是像 oyur 回答那样计算平均值
-
我已经改进了我对stackoverflow.com/questions/26871083/… 的答案如何工作的解释。你看到以“To generalize ...”开头的部分了吗?有两个步骤:将数组重塑为 4 维数组,然后平均。重塑部分与您所要求的相同,所以我不想在这里重复。
-
@WarrenWeckesser 我认为你的答案足以让他概括为一个答案(你给出了确切的公式哈哈)。这绝对让我的小宝贝 python 编码器感到羞耻。我很高兴看到它。
标签: numpy scipy scikit-learn scikit-image