转置(transpose)的理解

注意

.T 适用于一、二维数组的转置
.transpose 适用于高维数组,需要用到一个由轴编号组成的元组,才能进行转置

完整代码

import numpy as np

arr = np.arange(24).reshape(2,3,4)
print('原3维数组arr:\n',arr)
print('3个维度:',arr.shape)
print('----------------')

arr1=arr.transpose((1,0,2))
print('新3维数组arr1:\n',arr1)
print('3个维度:',arr1.shape)
print('----------------')

arr2=arr.transpose((0,2,1))
print('新3维数组arr2:\n',arr2)
print('3个维度:',arr2.shape)
print('----------------')

arr3=arr.transpose((1,2,0))
print('新3维数组arr3:\n',arr3)
print('3个维度:',arr3.shape)
print('----------------')

arr4=arr.reshape((3,2,4))#transpose不同于reshape
print('arr4:\n',arr4)
print('3个维度:',arr4.shape)

arr5=arr[:,:,::-1]#从尾到头
print('arr5:\n',arr5)
print('3个维度:',arr5.shape)

运行结果

3维数组arr:
 [[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
3个维度: (2, 3, 4)
----------------3维数组arr1:
 [[[ 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个维度: (3, 2, 4)
----------------3维数组arr2:
 [[[ 0  4  8]
  [ 1  5  9]
  [ 2  6 10]
  [ 3  7 11]]

 [[12 16 20]
  [13 17 21]
  [14 18 22]
  [15 19 23]]]
3个维度: (2, 4, 3)
----------------3维数组arr3:
 [[[ 0 12]
  [ 1 13]
  [ 2 14]
  [ 3 15]]

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

 [[ 8 20]
  [ 9 21]
  [10 22]
  [11 23]]]
3个维度: (3, 4, 2)
----------------
arr4:
 [[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]

 [[16 17 18 19]
  [20 21 22 23]]]
3个维度: (3, 2, 4)
arr5:
 [[[ 3  2  1  0]
  [ 7  6  5  4]
  [11 10  9  8]]

 [[15 14 13 12]
  [19 18 17 16]
  [23 22 21 20]]]
3个维度: (2, 3, 4)

画龙点睛

原三维数组 arr 三个维度 (2,3,4) 对应的是 (0,1,2) 三个索引
transpose 函数可以理解为改变数组数值的映射关系,原数组6这个数所在的索引是(0,1,2)
arr1 = arr.transpose((1,0,2)) 的操作相当于把原三维数组 arr 的第一个维度和第二个维度调换【新数组6这个数所在的索引是(1,0,2)】
arr2 = arr.transpose((0,2,1)) 的操作相当于把原三维数组 arr 的第二个维度和第三个维度调换【新数组6这个数所在的索引是(0,2,1)】

原数组 arr (2,3,4)
在这里插入图片描述

新数组 arr1 (3,2,4)

在这里插入图片描述

新数组arr2 (2,4,3)

在这里插入图片描述

参考链接:
numpy之转置(transpose)和轴对换

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 好的,关于dataframe的,可以使用transpose()方法来实现。例如,对于一个名为df的dataframe,可以通过以下代码进行: df_transposed = df.transpose() 这样,df_transposed就是df后得到的新dataframe。希望这能解决你的问题! ### 回答2: DataFrame是指将DataFrame的行和列进行交换,即将原来的行变为列,原来的列变为行。操作可以通过调用DataFrame的`transpose()`方法实现。 例如,有以下一个DataFrame: ``` A B C 0 1 4 7 1 2 5 8 2 3 6 9 ``` 通过操作后,DataFrame变为: ``` 0 1 2 A 1 2 3 B 4 5 6 C 7 8 9 ``` 操作将原来的行索引变为列索引,并将原来的列索引变为行索引。通过操作,我们可以更方便地对DataFrame进行处理和分析。 操作对于数据的理解和分析非常有用。它可以帮助我们更方便地对数据进行统计、排序、筛选等操作。同时,在数据可视化和报表生成方面,操作也可以使数据更加规整、易读。 需要注意的是,操作并不会改变DataFrame中数据的类型和值,只是改变了行和列的排列方式。 总而言之,DataFrame是一种将行和列进行交换的操作,通过操作,我们可以更方便地处理和分析数据。 ### 回答3: dataframe是pandas库中的一种数据结构,可以理解为一个二维表格,每列可以是不同的数据类型。而则是将数据表格中的行和列互换位。 在pandas中,可以使用transpose()方法将dataframe进行操作。该方法可以直接应用在dataframe对象上,并且会返回一个新的后的dataframe对象。 下面是一个的示例: 假设我们有一个dataframe对象df,它是一个3行2列的表格,其中每个元素的值如下所示: | 列1 | 列2 ---|---|--- 行1 | 1 | 2 行2 | 3 | 4 行3 | 5 | 6 通过使用df.transpose()方法,我们可以将行列进行互换,得到后的dataframe: | 行1 | 行2 | 行3 ---|---|---|--- 列1 | 1 | 3 | 5 列2 | 2 | 4 | 6 可以看到,原来的行1变成了后的列1,原来的列1变成了后的行1,以此类推。 通过操作,我们可以更方便地处理数据,例如将数据按照不同的维度进行分析和计算。同时,在进行数据分析和可视化时,也有助于更好地组织和呈现数据。 总之,是一种在dataframe中重新排列行和列的操作,可以通过transpose()方法实现,方便我们对数据进行处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值