Deque rotate返回无类型

时间:2014-04-02 23:08:05

标签: python numpy deque

我正在尝试将numpy数组对象向右或向左旋转一段距离。我这样做的方式如下:

  1. 我把它投入了deque对象
  2. 使用deque对象的旋转方法。
  3. 将类型重新转换回numpy数组。
  4. 例如,我将名为myarray的数组向右旋转2个元素。

    deque(myarray)
    myarray = myarray.rotate(2)
    print myarray
    

    我得到的不是数组,而是无。有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

正如roippi所指出的那样,rotate将双端队列旋转到位。代码应该是

deque(myarray)
myarray.rotate(1)

或者像Bi Rico建议的那样旋转阵列。

roll(myarray, 1)

还有许多其他方法可以完成这项工作,例如切片。

答案 1 :(得分:0)

考虑一下这个关于stardusts答案的评论/澄清/摘要(由于声誉而无法评论)以及完整的代码示例:

将startdusts回答与来自njzk2的评论结合起来(旋转不会返回任何要打印的内容),您可以全面了解。

>>> from collections import deque
>>> myarray = [1,2,3,4]
>>> myarray = deque(myarray)
>>> print myarray
deque([1,2,3,4])
>>> myarray.rotate(1)
>>> print myarray
deque([4,1,2,3])