python中numpy.transpose函数

本文详细介绍了Python中numpy库的transpose函数,用于数组的轴转换。通过三个实例,分别展示了对2维和3维数组的转置操作,包括默认转置和指定轴转置,帮助读者深入理解该函数的用法和效果。

numpy.transpose函数

numpy.transpose函数的主要作用:反转或置换数组的轴;返回修改后的数组。对于有两个轴的数组,对其进行转置并给出转置后的矩阵。

用法

import numpy as np

np.transpose(a, axes=None)

参数

  • a:数组,输入数据;
  • axestuplelist of ints, 可选参数。

实例

实例1

1.生成数组

x = np.array([[0,1,2],[3,4,5]])
x.shape

输出:

(2, 3)

2.使用transpose函数,并查看输出

a = np.transpose(x)
a

输出:

array([[0, 3],
       [1, 4],
       [2, 5]])

3.查看shape

a.shape

输出:

(3, 2)

从实例1中,可以看出,transpose函数对2维数组x进行了转置,即,将数组x的两个维度0轴的元素数量和1轴的元素数量进行了互换,(2,3)→(3,2)(2, 3) \rightarrow (3, 2)(2,3)(3,2),用轴可表示为:(0,1)→(1,0)(0, 1) \rightarrow (1, 0)(0,1)(1,0)

实例2

1.生成数组

x = np.array([[[0,1,2,3],[4,5,6,7],[8,9,10,11]],
              [[12,13,14,15],[16,17,18,19],[20,21,22,23]]])
x.shape

输出:

(2, 3, 4)

2.使用transpose函数,并查看输出

a = np.transpose(x)
a

输出:

array([[[ 0, 12],
        [ 4, 16],
        [ 8, 20]],

       [[ 1, 13],
        [ 5, 17],
        [ 9, 21]],

       [[ 2, 14],
        [ 6, 18],
        [10, 22]],

       [[ 3, 15],
        [ 7, 19],
        [11, 23]]])

3.查看shape

a.shape

输出:

(4, 3, 2)

从实例2中,可以看出,transpose函数对3维数组x进行运算之后,将原来的0轴的元素数量,1轴的元素数量,2轴的元素数量调换了位置,变成了2轴的元素数量,1轴的元素数量,0轴的元素数量,(2,3,4)→(4,3,2)(2, 3, 4) \rightarrow (4, 3, 2)(2,3,4)(4,3,2),用轴可表示为:(0,1,2)→(2,1,0)(0, 1, 2) \rightarrow (2, 1, 0)(0,1,2)(2,1,0)

实例3

1.生成数组

x = np.array([[[0,1,2,3],[4,5,6,7],[8,9,10,11]],
              [[12,13,14,15],[16,17,18,19],[20,21,22,23]]])
x.shape

输出:

(2, 3, 4)

2.使用transpose函数,并查看输出

a = np.transpose(x,(1,0,2))
a

输出:

array([[[ 0,  1,  2,  3],
        [12, 13, 14, 15]],

       [[ 4,  5,  6,  7],
        [16, 17, 18, 19]],

       [[ 8,  9, 10, 11],
        [20, 21, 22, 23]]])

3.查看shape

a.shape

输出:

(3, 2, 4)

在实例3中,指定transpose函数中的第二个参数,只将3维数组x0轴和1轴进行互换,运算之后,将原来的0轴的元素数量,1轴的元素数量,2轴的元素数量调换了位置,变成了1轴的元素数量,0轴的元素数量,2轴的元素数量,(2,3,4)→(3,2,4)(2, 3, 4) \rightarrow (3, 2, 4)(2,3,4)(3,2,4),用轴可表示为:(0,1,2)→(1,0,2)(0, 1, 2) \rightarrow (1, 0, 2)(0,1,2)(1,0,2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

great-wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值