數(shù)組轉(zhuǎn)置和軸對換
轉(zhuǎn)置(transpose)是重塑的一種特殊形式,它返回的是源數(shù)據(jù)的視 圖(不會進(jìn)行任何復(fù)制操作)啊央。數(shù)組不僅有transpose方法徘铝,還有一個特 殊的T屬性
In [1]: arr = np.arange(15).reshape((3, 5))
In [2]: arr
Out[2]: array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
In [3]: arr.T
Out[3]: array([[ 0, 5, 10], [ 1, 6, 11], [ 2, 7, 12], [ 3, 8, 13], [ 4, 9, 14]])
利用np.dot計算矩陣內(nèi)積
In [4]: arr = np.random.randn(6, 3)
In [5]: np.dot(arr.T, arr)
Out[5]: array([[ 2.584 , 1.8753, 0.8888], [ 1.8753, 6.6636, 0.3884], [ 0.8888, 0.3884, 3.9781]])
對于高維數(shù)組洞就,transpose需要得到一個由軸編號組成的元組才能對這些軸進(jìn)行轉(zhuǎn)置
簡單的轉(zhuǎn)置可以使用.T,它其實就是進(jìn)行軸對換而已秩铆。ndarray還 有一個swapaxes方法,它需要接受一對軸編號
In [6]: arr
Out[6]: array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])
In [7]: arr.swapaxes(1, 2)
Out[7]: array([[[ 0, 4], [ 1, 5], [ 2, 6], [ 3, 7]], [[ 8, 12], [ 9, 13], [10, 14], [11, 15]]])
swapaxes也是返回源數(shù)據(jù)的視圖(不會進(jìn)行任何復(fù)制操作)