numpy中 transpose和swapaxes函数以及.T属性 (数组转置和换轴)

numpy中transpose和swapaxes函数 (数组转置和换轴)

转置是一种特殊的数据重组形式,可以返回底层数据的视图而不需要复制任何内容。数组拥有transpose方法,也有特殊的T属性。

  • .T是最简单的转置属性,也是所有转置的基础。

对于二维数组来说, .T就是实现了行列的调转。即01转置

arr1 = np.arange(15).reshape((3,5))
arr1

array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
arr1.T

array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14]])
  • transpose()函数
    此函数通过调换数组的行列值的索引值进行换轴转置。
    这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数。 我们看如下一个numpy的数组:
import numpy as np
arr=np.arange(16).reshape((2,2,4)) 
arr

array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7]],

       [[ 8,  9, 10, 11],
        [12, 13, 14, 15]]])
arr.transpose(1,0,2)

ray([[[ 0,  1,  2,  3],
        [ 8,  9, 10, 11]],

       [[ 4,  5,  6,  7],
        [12, 13, 14, 15]]])

对于transpose(1,0,2),就是把之前的维度调序,即:第二个维度转为第一个维度之前的第一个维度变为第二个维度,最后一个轴不变。
在这里插入图片描述
如图所示:此函数将维度轴进行了轴编号,transpose方法接收含有轴编号的元组,通过轴编号进行换轴转置。

  • swapaxes()函数
    此函数交换数组的两个轴,返回交换数组的视图,不对数据进行复制。
numpy.swapaxes(arr, axis1, axis2)
             #(要进行交换的数组,轴编号)

该方法与transpose不同,它是接收一对轴编号作为参数,进行轴转置
例如下面就是将第三维度和第二维度进行交换

arr.swapaxes(2,1)  #将第三维度和第二维度进行交换

array([[[ 0,  4],
        [ 1,  5],
        [ 2,  6],
        [ 3,  7]],

       [[ 8, 12],
        [ 9, 13],
        [10, 14],
        [11, 15]]])
  • 附带一个dot函数

dot函数在进行矩阵运算时很常用,是一个特定操作。
返回的是两个数组的点积。
1、如果是一维数组,得到是两数组的内积(不清楚就要恶补数学哟)。
2、如果是二维数组,得到是矩阵积。(这里做个运算演示)
矩阵积
.dot()函数可以通过numpy库调用,也可以由数组实例对象进行调用。a.dot(b) 与 np.dot(a,b)效果相同。

矩阵积计算不遵循交换律,np.dot(a,b) 和 np.dot(b,a) 得到的结果是不一样的。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值