理解numpy的rollaxis与swapaxes函数

现在再说rollaxis函数,这个函数有三个参数 

numpy.rollaxis(arr, axis, start)

arr:输入数组
axis:要向后滚动的轴,其它轴的相对位置不会改变
start:默认为零,表示完整的滚动。会滚动到特定位置

import numpy as np
 
a = np.arange(8).reshape(2, 2, 2)
 
print '原数组:'
print a
print '\n'
# 将轴 2 滚动到轴 0(宽度到深度)
 
print '调用 rollaxis 函数:'
print np.rollaxis(a, 2)
# 将轴 0 滚动到轴 1:(宽度到高度)
print '\n'
 
print '调用 rollaxis 函数:'
print np.rollaxis(a, 2, 1)
原数组:
[[[0 1]
  [2 3]]
 
 [[4 5]
  [6 7]]]
 
 
调用 rollaxis 函数:
[[[0 2]
  [4 6]]
 
 [[1 3]
  [5 7]]]
 
 
调用 rollaxis 函数:
[[[0 2]
  [1 3]]
 
 [[4 6]
  [5 7]]]

程序运行np.rollaxis(a, 2)时,讲轴2滚动到了轴0前面,其他轴相对2轴位置不变(start默认0),数组下标排序由0,1,2变成了1,2,0

这时数组按下标顺序重组,例如第一个数组中[0,1]下标为[000,001],其中0的下标变动不影响值,1位置的下标由001变成010,第一位的下标滚动到最后一位下标的后面,值由1(001)变成2(010):

可以得出轴的滚动就是下标的滚动,同理,运行np.rollaxis(a, 2, 1)时将下标0,1,2变为0,2,

numpy.swapaxes(arr, axis1, axis2)函数则是交换,将axis1和axis2进行互换

猜你喜欢

转载自blog.csdn.net/qq_35810838/article/details/84331954
今日推荐