gpt4 book ai didi

python - 围绕中心单元旋转 3x3 阵列的每个单元的模块(不是矩阵旋转)

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:27 25 4
gpt4 key购买 nike

我想旋转一个数组,但不像基本的矩阵旋转。如果我有一个 3x3 阵列,我希望每个单元格都围绕中央单元格转动。

这是一个 3x3 数组:

import numpy as np

tab = np.array([[1,2,3],[4,5,6],[7,8,9]])

[[1 2 3]
[4 5 6]
[7 8 9]]

例如,我想将它旋转 45 度:

[[2 3 6]
[1 5 9]
[4 7 8]]

我不能使用 scipy.ndimage.interpolation.rotate(tab,45) 因为它应用了基本的矩阵旋转,这不是我想要的。

import numpy as np
from scipy import ndimage

tab = np.array([[1,2,3],[4,5,6],[7,8,9]])

ndimage.interpolation.rotate(tab,45)

[[0 0 0 0]
[0 2 6 0]
[0 4 8 0]
[0 0 0 0]]

有人知道如何实现吗?

最佳答案

你差点就用这个了:

ndimage.interpolation.rotate(tab,45,reshape=False,mode='nearest')

问题是您需要强制该方法不 reshape 您的矩阵,并使用最接近的数字而不是零来填充空白。

零的问题是当你旋转矩阵时一些数字(角落里的那些)会超出边界,所以你需要像精确的一样“预测”那些缺失的角落最近here

输出:

[[2 3 6]
[1 5 9]
[4 7 8]]

再次旋转它给出:

[[3 6 9]
[2 5 8]
[1 4 7]]

等..

关于python - 围绕中心单元旋转 3x3 阵列的每个单元的模块(不是矩阵旋转),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44893343/

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