python数据分析-numpy模块基础知识(2)
#这篇文章主要涉及的是矩阵的加减运算,乘法运算,如何得到矩阵的最大值,最小值,平均值等以及矩阵的转置# ps:如果有些知识看不太懂的话,可以先浏览下这个基础(1):
import numpy as np
a=np.array([[1,3,7,2],[1,1,2,2]])
b=np.array([[1,2,2,2],[4,3,5,5]])
c=a+b
print(c)
[[2 5 9 4]
[5 4 7 7]]
2.两个矩阵的乘法用 np.dot(a,b)
,元素的乘法用 *
,c返回的是点乘的结果,表示两个矩阵中一个一个元素对应相乘,c_dot才是矩阵的乘法原则( 线性代数
学的矩阵乘法)
import numpy as np
a=np.array([[1,1],[0,1]])
b=np.arange(4).reshape((2,2))
c=a*b
c_dot=np.dot(a,b)
print(c)
print(c_dot)
运行结果:
[[0 1]
[0 3]]
[[2 4]
[2 3]]
3.取矩阵中的最大值,最小值,求和
import numpy as np
a=np.random.random((2,4))
print(a)
print(np.sum(a))
print(np.max(a))
print(np.min(a))
运行结果:
[[0.72736344 0.62697694 0.92710953 0.16057127]
[0.24684854 0.62153325 0.85663209 0.03270094]]
4.199735998272793
0.9271095307305688
0.032700938688204784
另外:最大值以及最小值元素的 索引
(也就是所在位置),用 np.argmax(array)
这种形式即可
import numpy as np
a=np.arange(2,14).reshape((3,4))
print(a)
print(np.argmin(a))
print(np.argmax(a))
运行结果:
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
0 #最小值2在0位置,
11 #最大值13在11位置
4.axis=0代表逐行操作,1代表逐列操作 np.max(a,axis=0)是 逐行
,求的是 每一列
的最大值 np.sum(a,axis=1)是 逐列
,求的是 每一行
的总和
import numpy as np
a=np.random.random((2,4))
print(a)
print(np.max(a,axis=0)) #每一列的最大值
print(np.sum(a,axis=1)) #每一行的总和
运行结果:
[[0.30268151 0.83788309 0.66272296 0.0704801 ]
[0.76958351 0.65382616 0.28423487 0.90120983]]
[0.76958351 0.83788309 0.66272296 0.90120983]
[1.87376765 2.60885438]
5.取矩阵的平均值,利用 np.mean(array)
或者 np.average(array)
,中位数用 np.median(array)
import numpy as np
a=np.arange(2,14).reshape((3,4))
print(a)
print(np.mean(a))
print(np.average(a))
print(np.median(a))
运行结果:
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
7.5
7.5
7.5
6.利用 np.cumsum(array)
对矩阵元素累加, np.diff(array)
累差
import numpy as np
a=np.arange(2,14).reshape((3,4))
print(a)
print(np.cumsum(a))
print(np.diff(a))
运行结果:
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
[ 2 5 9 14 20 27 35 44 54 65 77 90] #累加结果
[[1 1 1]
[1 1 1]
[1 1 1]] #累差结果
7.矩阵的转置,用 np.transpose()
或者 array.T
;dot表示矩阵相乘,A矩阵与B矩阵相乘,用A.dot(B)或者dot(A,B)
import numpy as np
a=np.arange(14,2,-1).reshape((3,4))
print(a)
print(np.transpose(a))
print(a.T)
运行结果:
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]] #原矩阵
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]] #转置结果
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]#同样转置结果
_好啦,关于numpy模块基础知识(2)的介绍就先到这里啦~后期会持续更新的哟,欢迎大家提出问题一起学习! 我主要针对的学习对象是刚入门学习python数据分析的小伙伴哟,如果觉得对你有一点点帮助的话就点个赞呗,后期可以一起学习讨论。 _