numpy.rollaxis函数

numpy.rollaxis

numpy.rollaxis 函数向后滚动特定的轴到一个特定位置,格式如下:

numpy.rollaxis(arr, axis, start)

参数说明:

  • arr:数组
  • axis:要向后滚动的轴,其它轴的相对位置不会改变
  • start:默认为零,表示完整的滚动。会滚动到特定位置。
 1 import numpy as np
 2
 3 # 创建了三维的 ndarray
 4 a = np.arange(8).reshape(2,2,2)
 5
 6 print (‘原数组:‘)
 7 print (a)
 8 print (‘\n‘)
 9 # 将轴 2 滚动到轴 0(宽度到深度)
10
11 print (‘调用 rollaxis 函数:‘)
12 print (np.rollaxis(a,2))
13 # 将轴 0 滚动到轴 1:(宽度到高度)
14 print (‘\n‘)
15
16 print (‘调用 rollaxis 函数:‘)
17 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]]]

分析:

创建的2x2x2是一个三维数组:[[[0, 1], [2, 3]], [[4, 5], [6, 7]]]

如果要取数值 2,则a[0][1][0] ,数组下标与值对应如下表:

0(000) 1(001)
2(010) 3(011)
4(100) 5(101)
6(110) 7(111)

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

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

0(000) ->0(000) 1(001) ->2(010)
2(010) ->4(100) 3(011) ->6(110)
4(100) ->1(001) 5(101) ->3(011)
6(110) ->5(101) 7(111) ->7(111)

 

原文地址:https://www.cnblogs.com/jerryspace/p/10023851.html

时间: 2024-10-14 01:10:37

numpy.rollaxis函数的相关文章

Python中numpy.apply_along_axis()函数的用法

numpy.apply_along_axis(func, axis, arr, *args, **kwargs): 必选参数:func,axis,arr.其中func是我们自定义的一个函数,函数func(arr)中的arr是一个数组,函数的主要功能就是对数组里的每一个元素进行变换,得到目标的结果. 其中axis表示函数func对数组arr作用的轴. 可选参数:*args, **kwargs.都是func()函数额外的参数. 返回值:numpy.apply_along_axis()函数返回的是一个

NumPy 数学函数

NumPy 数学函数 NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等. 三角函数 NumPy 提供了标准的三角函数:sin().cos().tan(). 实例 import numpy as np a = np.array([0,30,45,60,90]) print ('不同角度的正弦值:') # 通过乘 pi/180 转化为弧度 print (np.sin(a*np.pi/180)) print ('\n') print ('数组中角度的余弦值:')

numpy高级函数:where与extract

numpy高级函数:where与extract 1.numpy.where()函数,此函数返回数组中满足某个条件的元素的索引: import numpy as np x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print("x") print(x) y=np.where(x>5) print(y) print(x[y]) 2.numpy.extract()函数,和where函数有一点相,不过extract函数是返回满足条件的元素

NumPy常用函数(一)——构造数组函数及代码示例

NumPy是Python的一个科学计算的基本模块.它是一个Python库,提供了一个多维数组对象,各种衍生对象(如屏蔽数组和矩阵),以及用于数组,数学,逻辑,形状操纵,排序,选择,I/O等快速操作的各种例程 离散傅里叶变换,基本线性代数,基本统计运算,随机模拟等等. 本文主要列出构造数组常用的函数或者成为子模块 一.0-1数组 empty(shape [,dtype,order])                      返回给定形状和类型的新数组,而不初始化条目. empty_like(a

python中numpy对函数进行矢量化转换

在对numpy的数组进行操作时,我们应该尽量避免循环操作,尽可能利用矢量化函数来避免循环. 但是,直接将自定义函数应用在numpy数组之上会报错,我们需要将函数进行矢量化转换. def Theta(x): """ Scalar implemenation of the Heaviside step function. """ if x >= 0: return 1 else: return 0 Theta(array([-3,-2,-1,0

numpy各函数简介之生成数组函数

1.empty(shape[, dtype, order]) 依据给定形状和类型(shape[, dtype, order])返回一个新的空数组. 参数: shape : 整数或者整型元组 定义返回数组的形状: dtype : 数据类型,可选 定义返回数组的类型. order : {‘C’, ‘F’}, 可选 规定返回数组元素在内存的存储顺序:C(C语言)-row-major:F(Fortran)column-major. 1 2 3 4 5 6 7 >>> np.empty([2, 2

python 科学计算库NumPy—tile函数

在学习knn分类算法的过程中用到了tile函数,有诸多的不理解,记录下来此函数的用法.   函数原型:numpy.tile(A,reps) #简单理解是此函数将A进行重复输出 其中A和reps都是array_like的参数,A可以是:array,list,tuple,dict,matrix以及基本数据类型int,string,float以及bool类型,reps的类型可以是tuple,list,dict,array,int,bool,但不可以是float,string,matrix类型. 计较常

Numpy下函数用法

1.tile(A,res)将数组进行重复,tile(Matrix,(m,n)),将其扩展成任一行 2.shape[0] 数组的第维维数, 3.sum(axis=0)将数组对应的列相加,axis=1,对应的行进行相加 4.argsort(x,axis=0)将数组X进行按列升序排序,x换为-x表示按列降序排序.x.argsort(),得到的是其原数据上的地址 5.对于字典中get函数dict.get(word,d)如果word在字典中返回是word,不是的话 6.将词典进行划分,dict.iteri

numpy 常用函数

1 求和函数 sum()    求积函数product() 加权平均数 average()    var()求方差     mean()求期望     std()求标准差 说明:在sum()函数中,也可以对列表元祖等与数组类似的序列求和.当数组多维度时,他计算的时所有元素的和.如果指定维度参数axis,则求和沿着指定轴进行.二位数组来说,如果axis=0,则数组沿着第第0轴求和,即对每一列求和,得到一个行矩阵.如果axis = 1则表示沿着第1轴求和,即为对每一行求和. # -*- coding