日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2024/7/19 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 numpy 转置_Numpy基础:数组转置和轴对换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)置(transpose)是重塑的一種特殊形式,它返回的是源數(shù)據(jù)的視圖(不會進(jìn)行任何復(fù)制操作)。數(shù)組不僅有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]])

在進(jìn)行矩陣計算時,經(jīng)常需要用到該操作,比如利用np.dot計算矩陣內(nèi)積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 ]])

對于高維數(shù)組,transpose需要得到一個由軸編號組成的元組才能對這些軸進(jìn)行轉(zhuǎn)置(比較費(fèi)腦子):

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]]])

簡單的轉(zhuǎn)置可以使用.T,它其實(shí)就是進(jìn)行軸對換而已。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也是返回源數(shù)據(jù)的視圖(不會進(jìn)行任何復(fù)制操作)。

親,如果筆記對您有幫助,收藏的同時,記得給點(diǎn)個贊、加個關(guān)注哦!感謝!」
「誠邀關(guān)注“issnail”,會有驚喜哦!」
「文中代碼均親測過,若有錯誤之處,歡迎批評指正,一起學(xué)習(xí),一起成長!」
參考書目:利用python進(jìn)行數(shù)據(jù)分析

總結(jié)

以上是生活随笔為你收集整理的numpy 转置_Numpy基础:数组转置和轴对换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。