1. 程式人生 > 程式設計 >Python numpy陣列轉置與軸變換

Python numpy陣列轉置與軸變換

這篇文章主要介紹了Python numpy陣列轉置與軸變換,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

矩陣的轉置

>>> import numpy as np
>>> arr=np.arange(15).reshape((3,5))
>>> arr
array([[ 0,1,2,3,4],[ 5,6,7,8,9],[10,11,12,13,14]])
>>> arr.T
array([[ 0,5,10],[ 1,11],[ 2,12],[ 3,13],[ 4,9,14]])

矩陣的內積

>>> import numpy as np
>>> arr=np.arange(15).reshape((3,14]])
>>> np.dot(arr.T,arr)
array([[125,140,155,170,185],[140,158,176,194,212],[155,197,218,239],[170,242,266],[185,212,239,266,293]])

軸變換

二維軸變換

1.兩軸交換

>>> import numpy as np
>>> arr=np.arange(15).reshape((3,14]])
>>> arr.transpose(1,0)#1軸和0軸進行交換
array([[ 0,14]])

三維軸變換

>>> arr = np.arange(16).reshape((2,4))
>>> arr
array([[[ 0,3],7]],[[ 8,10,[12,14,15]]])
>>> arr.transpose((1,2))
array([[[ 0,[ 8,11]],[[ 4,7],15]]])

1.這種變化有點麻煩,不好理解。但是如果簡單化就好了,加入用P(x,y,z)來表示矩陣中的每一個點,那麼在numpy中,這個x,z就分別對應0,2

2.舉個例子比如原來陣列中0這個元素,它原來的座標是(0,0),那麼transpose(1,2)對於這個點來說就是把x,y座標互換,而z座標不變,則其在新的矩陣中座標依舊是(0,0)不變

3.舉個另外點的例子比如4這個點,其座標是(0,1),那麼它的x和y座標交換之後是(1,所以它在新的矩陣中位置是(1,1)

4.事實上transpose函式正是對原來矩陣中每個點做這個變換,最後得到新的矩陣

兩軸交換

交換1軸和2軸

>>> arr
array([[[ 0,15]]])
>>> arr.swapaxes(1,2)
array([[[ 0,5],6],[ 9,14],[11,15]]])
>>> arr
array([[[ 0,15]]])

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。