gpt4 book ai didi

python - 使用 numpy 复制和反转数组部分时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:25 24 4
gpt4 key购买 nike

我正在尝试复制输入二维数组“img”的一部分并镜像该部分并将其复制到二维数组“out”中

下面的代码可以满足我的需要

a = numpy.zeros(shape=(pad, pad))
a[:,:]=img[0:pad,0:pad]
out[0:pad,0:pad]=a[::-1,::-1]

但仅仅执行以下操作并不会

out[0:pad,0:pad]=img[0:pad:-1,0:pad:-1]

而是返回ValueError:无法将pad=2的输入数组从形状(0,0)广播到形状(2,2),我不确定为什么。

最佳答案

img[0:pad:-1,0:pad:-1] 

应该是

img[pad-1::-1, pad-1::-1]

因为您希望索引从 pad-1 开始并逐步下降到 0。请参阅此处 the complete rules governing NumPy basic slicing .

例如,

import numpy as np

img = np.arange(24).reshape(6,4)
# array([[ 0, 1, 2, 3],
# [ 4, 5, 6, 7],
# [ 8, 9, 10, 11],
# [12, 13, 14, 15],
# [16, 17, 18, 19],
# [20, 21, 22, 23]])

pad = 2
out = img[pad-1::-1, pad-1::-1]

print(out)

产量

[[5 4]
[1 0]]

关于python - 使用 numpy 复制和反转数组部分时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com