python 學習筆記 numpy陣列轉置

2021-08-21 22:33:13 字數 3012 閱讀 2310

關於陣列的轉置,numpy提供了transpose函式和.t屬性兩種實現形式,一般transpose使用起來更為方便,另外轉換其中的兩個軸還可以用swapreaxes,下面通過例子來做介紹。

#一維陣列轉置

>>> arr = np.arange(6)

>>> print arr

[0, 1, 2, 3, 4, 5]

>>> print np.transpose(arr)

[0, 1, 2, 3, 4, 5]#一維還是一維…

#二維陣列轉置

>>> arr = np.arange(6).reshape((2,3))

>>> print arr

[[0, 1, 2],

[3, 4, 5]]

>>> print np.transpose(arr)

[[0,3],

[1,4],

[3,5]]

#三維陣列的轉置

>>> arr = np.arange(24).reshape((2,3,4))

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

>>> print np.transpose(arr)

[[[0, 12],

[4, 16],

[8, 20]],

[[1, 13],

[5, 17],

[9, 21]],

[[2, 14],

[6, 18],

[10, 22]],

[[3, 15],

[7, 19],

[11, 23]]]

#當陣列》=三維之後,我們可能希望按照特定規則來轉置,transpose 可以接受用於指定轉置的座標軸號碼的元組

>>> print np.transpose(arr, (1,0,2))

[[[ 0, 1, 2, 3],

[ 12, 13, 14, 15]],

[[ 4, 5, 6, 7],

[ 16, 17, 18, 19]],

[[ 8, 9, 10, 11],

[ 20, 21, 22, 23]]]

對於是否指定轉化規則,具體來看三維的變化:原始資料的「三維」是(2,3,4),不指定轉換規則後的「三維」是(4,3,2),而指定規則後的三維則是按照我們指定的規則,將其一維和二維進行調換。

#原始三維資料規則

>>> print (arr.shape)

(2, 3, 4)

#不指定轉換規則

>>> print (np.transpose(arr).shape)

(4, 3, 2)

#指定轉換規則

>>> print (np.transpose(arr,(1, 0, 2)).shape)

(3, 2, 4)

ndarray的t屬性,用法則比較簡單,只需要在陣列後跟.t即可。.t屬性實際是轉置裡面的特殊情況,即不指定轉置規則的預設規則。

#一維陣列轉置

>>> arr = np.arange(6)

>>> print arr

[0, 1, 2, 3, 4, 5]

>>> print arr.t

[0, 1, 2, 3, 4, 5]#一維還是一維…

#二維陣列轉置

>>> arr = np.arange(6).reshape((2,3))

>>> print arr

[[0, 1, 2],

[3, 4, 5]]

>>> print arr.t

[[0,3],

[1,4],

[3,5]]

#三維陣列的轉置

>>> arr = np.arange(24).reshape((2,3,4))

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

>>> print arr.t

[[[0, 12],

[4, 16],

[8, 20]],

[[1, 13],

[5, 17],

[9, 21]],

[[2, 14],

[6, 18],

[10, 22]],

[[3, 15],

[7, 19],

[11, 23]]]

當某些情況下,你可能只需要轉換其中的兩個軸,除了可以使用transpose指定軸以外(當然需要每個軸都指定順便,只是調整其中的部分而已),還可以使用swapreaxes。

>>> arr = np.arange(24).reshape((2,3,4))

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

>>> print arr.swapaxes(1, 0)

[[[ 0, 1, 2, 3],

[ 12, 13, 14, 15]],

[[ 4, 5, 6, 7],

[ 16, 17, 18, 19]],

[[ 8, 9, 10, 11],

[ 20, 21, 22, 23]]]

python之Numpy學習筆記

1.匯入numpy庫 import numpy as np2.生成陣列 重要函式 作用 示例 np.array x 將輸入資料轉化為乙個ndarray a list list range 10 b np.array a list np.array x,dtype 將輸入資料轉化為乙個型別為type的...

python學習筆記 一 NumPy

numpy 是用於處理陣列的python 庫。numpy 指的是數值 python numerical python 在 python 中,我們有 滿足陣列功能的列表,但是處理起來很慢。numpy 中的陣列物件稱為ndarray,它提供了許多支援函式,使得利用 ndarray 非常容易。陣列在資料科...

Numpy學習筆記

測試檔案裡的資料排列型別最好是有規律的,不可以隨便,否則將發生一些錯誤 genfromtxt函式 genfromtxt函式建立陣列 資料 genfromtxt主要執行兩個迴圈運算。第乙個迴圈將檔案的每一行轉換成字串序列。第二個迴圈將每個字串序列轉換為相應的資料型別。genfromtxt能夠考慮缺失的...