numpy学习笔记(二)矩阵运算
a为矩阵
a = np.arange(1,13).reshape(3,4)
计算矩阵的平均值:np.mean(a)
np.average(a)
np.mean(a,axis=0)#对于列计算,np.mean(a,axis=1)#对于行计算
对于所有计算都启用
计算矩阵的中位数:np.median(a)
矩阵累加:
print(a)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
np.cumsum(a)
Out: array([ 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78], dtype=int32)
每两个数之间的差值:
np.diff(a)
Out:
array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
输出矩阵中数字的位置:
np.nonzero(a)
Out:
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64),
array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
第一个array表示数字的行,第二个表示列
给矩阵每行排序:
A = np.arange(13,1,-1).reshape(3,4)
#定义一个反向的矩阵
A
Out[12]:
array([[13, 12, 11, 10],
[ 9, 8, 7, 6],
[ 5, 4, 3, 2]])
np.sort(A)#每行每行地排序
Out[13]:
array([[10, 11, 12, 13],
[ 6, 7, 8, 9],
[ 2, 3, 4, 5]])
矩阵镜像:
np.transpose(a)
rray([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
np.transpose(a)#或者a.T
Out[15]:
array([[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11],
[ 4, 8, 12]])#以对角线反向矩阵
矩阵乘法:
(a.T).dot(a)
Out:array([[107, 122, 137, 152],
[122, 140, 158, 176],
[137, 158, 179, 200],
[152, 176, 200, 224]])
裁剪矩阵:
np.clip(矩阵,最小值,最大值)#所有小于最小值的数 都等于输入的最小值,所有大于最大值的数都等于最大值
np.clip(a,3,10)
Out[19]:
array([[ 3, 3, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 10, 10]])