首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何移动整个numpy数组,并进行包装

如何移动整个numpy数组,并进行包装
EN

Stack Overflow用户
提问于 2018-11-26 06:32:18
回答 1查看 1.3K关注 0票数 5

不知道如何最好的标题这个问题,但基本上我想要生成一个新的numpy数组的基础上现有的数组。唯一的区别是,这些值已经转移到了我指定的索引中。还假定需要包装。

为了简单起见,请考虑基本数组:

代码语言:javascript
复制
[[0,1,2],
 [3,4,5],
 [6,7,8]]

如果我希望将基数组中的零(0)或第一个元素移到(0,1),则如下所示:

代码语言:javascript
复制
[[2,0,1],
 [5,3,4],
 [8,6,7]]

如果我希望第一个元素在(2,2)处移动,它将是:

代码语言:javascript
复制
[[4,5,3],
 [7,8,6],
 [1,2,0]]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 06:43:17

使用numpy.roll。例如,对于第一个输出,可以向右滚动1索引,这意味着沿轴1:

代码语言:javascript
复制
import numpy as np
x = np.array([[0,1,2], [3,4,5], [6,7,8]])
x_shifted = np.roll(x, shift=1, axis=1)

由于交换性,对于双向循环排列效应,您可以滚动两次(每维一次):

代码语言:javascript
复制
x_double_shifted = np.roll(np.roll(x, shift=2, axis=1), shift=2, axis=0)

显然可以做得更“漂亮”;-)

祝好运!

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53475800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档