numpy 转置_Numpy基础:数组转置和轴对换

7734ebf8e0ec15941e72f96e7af16a72.png

转置(transpose)是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作)。数组不仅有transpose方法,还有一个特殊的T属性。

In[70]:arr=np.arange(15).reshape((3,5))

In[71]:arr

Out[71]:

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

[ 5, 6, 7, 8, 9],

[10, 11, 12, 13, 14]])

In[72]:arr.T

Out[72]:

array([[ 0, 5, 10],

[ 1, 6, 11],

[ 2, 7, 12],

[ 3, 8, 13],

[ 4, 9, 14]])

在进行矩阵计算时,经常需要用到该操作,比如利用np.dot计算矩阵内积XTX:

In[73]:arr=np.random.randn(6,3)

In[74]:np.dot(arr.T,arr)

Out[74]:

array([[ 14.91087193, -7.57347777, -0.56395378],

[ -7.57347777, 6.79559058, 3.99068128],

[ -0.56395378, 3.99068128, 9.8351215 ]])

对于高维数组,transpose需要得到一个由轴编号组成的元组才能对这些轴进行转置(比较费脑子):

In[75]:arr=np.arange(16).reshape((2,2,4))

In[76]:arr

Out[76]:

array([[[ 0, 1, 2, 3],

[ 4, 5, 6, 7]],

[[ 8, 9, 10, 11],

[12, 13, 14, 15]]])

In[77]:arr.transpose((1,0,2))

Out[77]:

array([[[ 0, 1, 2, 3],

[ 8, 9, 10, 11]],

[[ 4, 5, 6, 7],

[12, 13, 14, 15]]])

简单的转置可以使用.T,它其实就是进行轴对换而已。Ndarray还有一个swapaxes方法,它需要接受一对轴编号。

In[78]:arr

Out[78]:

array([[[ 0, 1, 2, 3],

[ 4, 5, 6, 7]],

[[ 8, 9, 10, 11],

[12, 13, 14, 15]]])

In[79]:arr.swapaxes(1,2)

Out[80]:

array([[[ 0, 4],

[ 1, 5],

[ 2, 6],

[ 3, 7]],

[[ 8, 12],

[ 9, 13],

[10, 14],

[11, 15]]])

swapaxes也是返回源数据的视图(不会进行任何复制操作)。

亲,如果笔记对您有帮助,收藏的同时,记得给点个赞、加个关注哦!感谢!」
「诚邀关注“issnail”,会有惊喜哦!」
「文中代码均亲测过,若有错误之处,欢迎批评指正,一起学习,一起成长!」
参考书目:利用python进行数据分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值