numpy基本运算
import numpy as np#大部分都是一些可以理解的运算
a=np.array([10,20,30,40])
b=np.arange(4)
c=a-b
d=a+b
e=b**3
f=10*np.sin(a)
print(a,b,c,d)
print(e,f)
print(b<3)
结果
[10 20 30 40] [0 1 2 3] [10 19 28 37] [10 21 32 43]
[ 0 1 8 27] [-5.44021111 9.12945251 -9.88031624 7.4511316 ]
[ True True True False]
矩阵乘法
import numpy as np
a=np.array([[1,1],[0,1]])
b=np.arange(4).reshape(2,2)
c=a*b#对应相乘若不对应即两行两列对应一行四列之类的报错
d=np.dot(a,b)#真正的矩阵乘法但无法多行列相乘?
e=np.array([1,2,3,4])
f=a.dot(b)
print(a)
print(b)
print(c)
print(d)
print(f)
[[1 1]
[0 1]]
[[0 1]
[2 3]]
[[0 1]
[0 3]]
[[2 4]
[2 3]]
[[2 4]
[2 3]]
求和求最大最小值
import numpy as np
a=np.random.random((2,4))#随机获取
b=np.random.random((3,3,3))
print(a)
print(b)
print(np.sum(a))
print(np.sum(a,axis=1))#1指行当中,0指列当中
print(np.min(a,axis=0))#axis=0表示这个元组的第一个元素,axis=1表示第二个元素.
#假如这个数组是三维数组,axis=0代表的是第一个维度也就是页,axis=1,表示的是行,axis=2表示列
print(np.max(b,axis=2))
print(np.max(a))
[[0.62033413 0.88508017 0.00329926 0.39218687]
[0.30367237 0.84529731 0.94028926 0.90542623]]
[[[0.4390173 0.26502627 0.19713983]
[0.6424552 0.82804722 0.20173993]
[0.63385815 0.43388404 0.82832287]]
[[0.78941203 0.83929731 0.51955024]
[0.29501453 0.79588307 0.97602342]
[0.0322895 0.94012223 0.98703397]]
[[0.069906 0.21727818 0.62263464]
[0.97589108 0.17320826 0.45499009]
[0.73710226 0.30342144 0.03945624]]]
4.895585604904276
[1.90090043 2.99468517]
[0.30367237 0.84529731 0.00329926 0.39218687]
[[0.4390173 0.82804722 0.82832287]
[0.83929731 0.97602342 0.98703397]
[0.62263464 0.97589108 0.73710226]]
0.9402892623673101
求中位数,平均数(众数没有直接求法)
import numpy as np
a=np.arange(0,12).reshape((3,4))
b=np.argmin(a)#求索引
c=np.argmax(a)
d=np.mean(a)#平均值或者average
e=np.median(a)#中位数
f=np.cumsum(a)#累加n位 0加到n位放在n位
g=np.nonzero(a)#找出非0的数在这里输出行数再输出列数一一对应
print(a)
print(b,c,d,e)
print(f)
print(g)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
0 11 5.5 5.5
[ 0 1 3 6 10 15 21 28 36 45 55 66]
(array([0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
矩阵转置
import numpy as np
a=np.arange(14,2,-1).reshape((3,4))#转置,即行列互换
b=np.transpose(a)#b=a.T结果一样更符合线代做法
c=np.clip(a,4,10)#小于4变为4,大于10变成10
print(a)
print(b)
print(c)
print(np.mean(a,axis=0))#注意行列
print(np.mean(a,axis=1))
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]]
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]
[[10 10 10 10]
[10 9 8 7]
[ 6 5 4 4]]
[10. 9. 8. 7.]
[12.5 8.5 4.5]