python – 如何使用包装移动整个numpy数组
发布时间:2020-12-20 11:08:20 所属栏目:Python 来源:网络整理
导读:不知道如何最好地标题这个问题,但基本上我想生成一个基于现有数组的新numpy数组.唯一的区别是值已经转移到我指定的索引.还假设需要包装. 为简单起见,请考虑基本数组: [[0,1,2],[3,4,5],[6,7,8]] 如果我想将基数组中的零(0)或第一个元素移位到(0,1),它将是:
不知道如何最好地标题这个问题,但基本上我想生成一个基于现有数组的新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) 显然可以做得更“漂亮”;-)祝好运! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |