加减乘除运算
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c1=a-b#减
print(c1)
结果:
[10 20 30 40] [0 1 2 3]
[10 19 28 37]
c2=a+b#减
print(c2)
结果:
[10 21 32 43]
c3=a*b#乘
print(c3)
结果:
[ 0 20 60 120]
平方
c4=b**2#b的平方
g=b*b
print(c4)
print(g)
结果:
[0 1 4 9]
[0 1 4 9]
调用函数
c5=10*np.sin(a)#用np.xxx调用三角函数
print(c5)
e=np.sin(np.pi/6)
print(e)
结果:
[-5.44021111 9.12945251 -9.88031624 7.4511316 ]
0.49999999999999994
比值符号
print(b)
print(b<3)#>,<,==
结果:
[0 1 2 3]
[ True True True False]
矩阵乘法
.dot(矩阵1,矩阵2)
矩阵1.dot(矩阵2)
a1=np.array([[1,1],
[0,1]])
b1=np.arange(4).reshape((2,2))
c6=a1*b1#普通乘法
c_dot=np.dot(a1,b1)#矩阵乘法1
c_dot_2=a1.dot(b1)#矩阵乘法2
print(a1)
print(b1)
print('==========')
print(c6)
print(c_dot)
print(c_dot_2)
结果:
[[1 1]
[0 1]]
[[0 1]
[2 3]]
==========
[[0 1]
[0 3]]
[[2 4]
[2 3]]
[[2 4]
[2 3]]
随机矩阵
a2=np.random.random((2,4))#随机矩阵
print(a2)
结果:
[[0.94370527 0.77206288 0.66349824 0.03071424]
[0.40588958 0.45598837 0.9088615 0.73909982]]
求和
.sum()
axis=0取列,axis=1取行
print(np.sum(a2,axis=1))#axis维度 每行求和
结果:
[2.40998064 2.50983926]
最值
print(np.max(a2,axis=0))#axis=0列上,axis=1行上
print(np.min(a2,axis=1))
结果:
[0.94370527 0.77206288 0.9088615 0.73909982]
[0.03071424 0.40588958]
最值的索引
argmin()
argmax()
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
11
平均值的三种种表示方式
.mean(矩阵)
.average(矩阵)
矩阵.mean()
print(np.mean(A))#平均值的三种种表示方式
print(np.average(A))
print(A.mean())
结果:
7.5
7.5
7.5
行或列的平均值
nonzero(矩阵)
print(A1)
print(np.mean(A1,axis=0))#列的平均值
print(np.mean(A1,axis=1))#行的平均值
结果:
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]]
[10. 9. 8. 7.]
[12.5 8.5 4.5]
中位数
.mean(矩阵)
.average(矩阵)
矩阵.mean()
print(np.median(A))#中位数
结果:
7.5
累加和累差数组
.cumsum(矩阵)累加
.diff(矩阵)累差
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]]
输出所有非零索引
nonzero(矩阵)
print(np.nonzero(A))#输出所有非零索引
结果:
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
数组逐行进行排序
sort(矩阵)
A1=np.arange(14,2,-1).reshape((3,4))#-1是步长,相当于等差数列
print(A1)
print(np.sort(A1))#对A1逐行进行排序
结果:
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]]
[[11 12 13 14]
[ 7 8 9 10]
[ 3 4 5 6]]
矩阵的置的两种表示方法
.transpose(矩阵)
矩阵.T
print(np.transpose(A1))#transpose矩阵的置的两种表示方法
print(A1.T)
print((A1.T).dot(A))#矩阵乘以矩阵的置
结果:
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]
[[148 178 208 238]
[130 157 184 211]
[112 136 160 184]
[ 94 115 136 157]]
修改矩阵里的数,让矩阵里的数不大于最大值不小于最小值
nonzero(矩阵)
print(np.clip(A1,5,9))#clip(矩阵,矩阵min,矩阵max)所有小于min的都等于min,所有大于max都等于max
结果:
[[9 9 9 9]
[9 9 8 7]
[6 5 5 5]]