阅读 401

NumPy怎么实现数组翻转?(NumPy实现数组翻转的方法)

常见的数组翻转等方法

函数描述
transpose对换数组的维度
ndarray.T和 self.transpose() 相同
rollaxis向后滚动指定的轴
swapaxes对换数组的两个轴

numpy.transpose

numpy.transpose 函数用于对换数组的维度,格式如下:

numpy.transpose(arr, axes)

参数说明:

arr:要操作的数组axes:整数列表,对应维度,通常所有维度都会对换。

示例

import numpy as np
 
a = np.arange(12).reshape(3,4)
 print ('原数组:')print (a )print ('\n')
 print ('对换数组:')print (np.transpose(a))

输出结果如下:

原数组:[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]]对换数组:[[ 0 4 8] [ 1 5 9] [ 2 6 10] [ 3 7 11]]

numpy.ndarray.T 类似 numpy.transpose:

示例

import numpy as np
a = np.arange(12).reshape(3,4)
 print ('原数组:')print (a)print ('\n')
 print ('转置数组:')print (a.T)

输出结果如下:

原数组:[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]]转置数组:[[ 0 4 8] [ 1 5 9] [ 2 6 10] [ 3 7 11]]

numpy.rollaxis

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

numpy.rollaxis(arr, axis, start)

参数说明:

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

示例

import numpy as np
 # 创建了三维的 ndarraya = 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]]]

numpy.swapaxes

numpy.swapaxes 函数用于交换数组的两个轴,格式如下:

numpy.swapaxes(arr, axis1, axis2)

arr:输入的数组axis1:对应第一个轴的整数axis2:对应第二个轴的整数

示例

import numpy as np 
 # 创建了三维的 ndarraya = np.arange(8).reshape(2,2,2)
 print ('原数组:')print (a)print ('\n')
 # 现在交换轴 0(深度方向)到轴 2(宽度方向) print ('调用 swapaxes 函数后的数组:')print (np.swapaxes(a, 2, 0))

输出结果如下:

原数组:[[[0 1]
  [2 3]] [[4 5]
  [6 7]]]
调用 swapaxes 函数后的数组:[[[0 4]
  [2 6]] [[1 5]
  [3 7]]]


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐