(五)Numpy数组操作之翻转数组

函数

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

numpy.transpose

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

  • numpy.transpose(arr, axes)

参数说明:

  • arr:要操作的数组

  • axes:整数列表,对应维度,通常所有维度都会对换。

实例:

import numpy as np

a = np.arange(6).reshape(2, 3)

print('原数组:')
print(a)
'''
[[0 1 2]
 [3 4 5]]
'''
print('对换数组:')
print(np.transpose(a))
# print(a.T)
'''
[[0 3]
 [1 4]
 [2 5]]
'''

numpy.ndarray.T 也能做到一样的效果

numpy.rollaxis*

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

  • numpy.rollaxis(arr, axis, start)

参数说明:

  • arr:数组

  • axis:要向后滚动的轴,其它轴的相对位置不会改变

  • start:默认为零,表示完整的滚动。会滚动到特定位置。

实例:

import numpy as np
 
# 创建了三维的 ndarray
a = np.arange(8).reshape(2,2,2)
 
print ('原数组:')
print (a)
print ('获取数组中一个值:')
print(np.where(a==6))   
print(a[1,1,0])  # 为 6
print ('\n')
 
 
# 将轴 2 滚动到轴 0(宽度到深度)
 
print ('调用 rollaxis 函数:')
b = np.rollaxis(a,2,0)
print (b)
# 查看元素 a[1,1,0],即 6 的坐标,变成 [0, 1, 1]
# 最后一个 0 移动到最前面
print(np.where(b==6))   
print ('\n')
 
# 将轴 2 滚动到轴 1:(宽度到高度)
 
print ('调用 rollaxis 函数:')
c = np.rollaxis(a,2,1)
print (c)
# 查看元素 a[1,1,0],即 6 的坐标,变成 [1, 0, 1]
# 最后的 0 和 它前面的 1 对换位置
print(np.where(c==6))   
print ('\n')

numpy.swapaxes*

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

  • numpy.swapaxes(arr, axis1, axis2)

    • arr:输入的数组

    • axis1:对应第一个轴的整数

    • axis2:对应第二个轴的整数

实例:

import numpy as np
 
# 创建了三维的 ndarray
a = np.arange(8).reshape(2,2,2)
 
print ('原数组:')
print (a)
'''
[[[0 1]
  [2 3]]

 [[4 5]
  [6 7]]]
'''
# 现在交换轴 0(深度方向)到轴 2(宽度方向)
 
print ('调用 swapaxes 函数后的数组:')
print (np.swapaxes(a, 2, 0))
'''
[[[0 4]
  [2 6]]

 [[1 5]
  [3 7]]]
'''

        这两个轴转换的函数比较抽象,最好是借助立体事物去理解,或者找出轴转换后的规律,不过用到的应该不会多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值