数组转置和轴对换
转置(transpose)是重塑的一种特殊形式,它返回的是源数据的视图(不会进行任何复制操作)。对于数组转置,不仅有复杂的transpose方法,也有简单的轴对换T:
In: arr1 = np.arange(15).reshape((3, 5))
In: arr1
Out:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
In: arr1.T
Out:
array([[ 0, 5, 10],
[ 1, 6, 11],
[ 2, 7, 12],
[ 3, 8, 13],
[ 4, 9, 14]])
#进行矩阵运算时,往往需要利用np.dot计算矩阵内积XTX:
In: arr2 = np.random.randn(6, 3)
In: np.dot(arr2.T, arr2)
Out:
array([[ 5.84614291, 5.68578629, 3.59629369],
[ 5.68578629, 12.30153127, -0.17237568],
[ 3.59629369, -0.17237568, 6.89270442]])
In: arr2
Out:
array([[-0.36284259, -0.23570776, 0.36094197],
[ 0.03884156, 1.44913293, 0.39323928],
[ 1.38004931, 0.78736322, 0.92289144],
[-0.97827735, -1.75211645, 0.10608221],
[ 1.10995558, 2.54018714,