python – 如何使用包装移动整个numpy数组

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

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

[[0,1,2],[3,4,5],[6,7,8]]

如果我想将基数组中的零(0)或第一个元素移位到(0,1),它将是:

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

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

[[4,5,3],[7,8,6],[1,2,0]]

解决方法

使用 numpy.roll.
例如,对于第一个输出,您可以向右滚动1个索引,即沿轴1:

import numpy as np
x = np.array([[0,8]])
x_shifted = np.roll(x,shift=1,axis=1)

由于可交换性,您可以滚动两次(每个维度一次)以实现双向循环置换效果

x_double_shifted = np.roll(np.roll(x,shift=2,axis=1),axis=0)

显然可以做得更“漂亮”;-)祝好运!

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...