中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Numpy數組的轉置和軸交換如何實現

發布時間:2023-03-27 10:20:40 來源:億速云 閱讀:94 作者:iii 欄目:開發技術

這篇“Numpy數組的轉置和軸交換如何實現”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Numpy數組的轉置和軸交換如何實現”文章吧。

NumPy 數組在進行轉置時不會實際移動內存中的任何數據 位置只是改變對原始矩陣的索引方式 ,比如我原來是行索引現在變為列索引了

轉置是一種視圖并不是對原數組的復制數組轉置擁有transpose方法,也有特殊的T屬性

對于numpy數組的轉置僅限于一維和二維數組,使用的是 numpy中的T 屬性

創建一個0-15的一維數組,并且對它進行了數組重組,變為 2 x 2 x 4的三維數組,并對它進行轉置

import  numpy as np
#創建一個三維數組,這個三維數組的形狀是 2 x 2 x 4 ,三維數組包括兩個二維數組,二維數組中包含兩個一維數組,一維數組的數組維度長度是 4
arr = np.arange(16)
arr2 = arr.reshape(4,-1)
arr3 = arr.T
0

Numpy數組的轉置和軸交換如何實現

我們通過數組的迭代來檢查numpy數組的轉置是否對原數組位置做了改變,這里我們要引用numpy.nditer() 方法

對原數組進行迭代:

arr = np.arange(16)
arr2 = arr.reshape(4,-1)
for x in np.nditer(arr2): # 需要注意的是for循環的末尾一定要加上 冒號(:)
 print(x,end=" ")

Numpy數組的轉置和軸交換如何實現

我們對通過 arr2的轉置數組arr3做迭代

arr = np.arange(16)
arr2 = arr.reshape(4,-1)
arr3 = arr2.T
for xx in np.nditer(arr3):
 print(xx,end=" ")

Numpy數組的轉置和軸交換如何實現

可以發現他們的打印結果未發生任何變化,所以可以證實,數組轉置并不是改變了原數組的元素位置,只是改變了它的索引方式。

其實我可以告訴你,一個最終結果,原數組和對原數組的轉置在內存中是共享數據的,,類似于家里的小狗叫做旺旺 和小黃,其實指的是是一個東西

在這里需要注意的是,在數組轉置下對數組作修改一定會影響到原數組

例如:

arr = np.arange(10).reshape(2,5)
arr2 = arr.T
#為了方便理解我上述說的意思,我引用下面的實例
#對arr2中的某一數組作以修改
print(arr)  # 原數組
arr2[2][1] = 200  #在原數組轉置后,對其中 某一個元素做修改
print(arr2)  # 打印對原數組轉之后的數組
print(arr)   #打印原數組

Numpy數組的轉置和軸交換如何實現

發現了什么我們最初定義的數組被篡改了,不知道大家對數組的轉置和原數組公用一個內存位置的概念的理解是否變得容易

array.transpose() 軸交換

雖然,transpose方法可以實現轉置,但是它的真正用途是軸交換,我前面提到.T 方法只適合用于一二數組,三維,四維就要用到transpose()方法。

transpose() 方法中的參數和數組的維度有關,拿三位數組來說共需要三個參數分別是,

transpose(x,y,z)其中的參數分別對應0,1,2,只需要變換軸對應數字參數的順序就可以將數組進行軸的變換。

原數組對應的參數順序是,transpose(0,1,2)

import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(arr)
arr2 = arr.transpose((0,2,1))  #我在這里改變了列和縱深的順序
print(arr2)

Numpy數組的轉置和軸交換如何實現

Numpy數組的轉置和軸交換如何實現

經過軸交換后arr數組打印結果

Numpy數組的轉置和軸交換如何實現

這一塊比較難于理解,我也是看了好久現在也是馬馬虎虎,我可以告訴大家一個比較笨的方法

請記住,(x,y,z)或者(0,1,2)分別代表行軸,列軸,縱深軸,transpose 方法是對它們的軸進行了交換。

以上就是關于“Numpy數組的轉置和軸交換如何實現”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴中市| 清水河县| 衡山县| 巨鹿县| 鹿邑县| 恩施市| 新邵县| 金溪县| 忻州市| 阜城县| 邯郸县| 县级市| 凭祥市| 静海县| 绥德县| 亳州市| 凤山市| 七台河市| 梅州市| 峨山| 江都市| 祁东县| 祁连县| 正定县| 大同县| 阿图什市| 墨江| 伊宁市| 大关县| 会宁县| 武川县| 凤庆县| 南康市| 如东县| 杭州市| 游戏| 麻栗坡县| 丰顺县| 卢龙县| 黄冈市| 黄大仙区|