gpt4 book ai didi

python - numpy rollaxis - 它究竟是如何工作的?

转载 作者:太空狗 更新时间:2023-10-29 18:20:25 25 4
gpt4 key购买 nike

所以我在试验 numpy 时遇到了 rollaxis 方法中的奇怪(?)行为。

In [81]: a = np.ones((4, 3, 2))

In [82]: a.shape
Out[82]: (4, 3, 2)

In [83]: x = np.rollaxis(a, 2)

In [84]: x.shape
Out[84]: (2, 4, 3)

In [85]: np.rollaxis(x, -2).shape
Out[85]: (4, 2, 3)

-2 不应该反转 rollaxis 吗?我想要做的是应用一个矩阵,该矩阵只能在第一个坐标为 2 时应用。但后来我想把我的阵列放回原来的形式。我发现唯一有用的是应用 np.rollaxis(x, 2) 两次,或应用 np.rollaxis(x, 0, start=3)。我只是通过猜测找到了这些,我不知道它们为什么起作用。他们似乎也掩盖了我真正想做的事情。有人可以解释一下我应该“反转”滚动的方式,或者我做错了什么吗?

(有没有 pythonic 的方法来做到这一点?)

最佳答案

方法rollaxis

def rollaxis(a, axis, start=0):

开始“位置”重新分配选定的

按照你的例子:

a = np.ones((4, 3, 2))
x = np.rollaxis(a, 2)
# x.shape = (2, 4, 3)

关于形状:rollaxis 会将最后一个 axis=2 中的数字 2 带到第一个位置,因为开始=0

通过使用

x2 = np.rollaxis(x, -2)
# x2.shape = (4,2,3)

rollaxis 将带数字 4,即倒数第二个轴 axis=-2,并在第一个位置重新分配,因为 start=0 。这解释了您的结果 (4,2,3),而不是 (4,3,2)

遵循相同的逻辑,这解释了为什么两次应用 rollaxis(a,2) 会使数组形状恢复到初始形状。 np.rollaxis(x, 0, start=3) 也有效,因为第一个轴到最后一个,换句话说,(2,4,3) 中的数字 2 到最后一个位置结果 (4,3,2).

关于python - numpy rollaxis - 它究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22583792/

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