简单运算
x1=np.arange(1,11,2)
x2=np.linspace(1,9,5)
print(x1)
print(x2)
print(np.add(x1,x2)) #加 +
print(np.subtract(x1,x2)) #减 -
print(np.multiply(x1,x2)) #乘 *
print(np.divide(x1,x2)) #除 /
print(np.power(x1,x2)) #指数 **
print(np.remainder(x1,x2)) #余数 mod %
'''
运行结果
[1 3 5 7 9]
[1. 3. 5. 7. 9.]
[ 2. 6. 10. 14. 18.]
[0. 0. 0. 0. 0.]
[ 1. 9. 25. 49. 81.]
[1. 1. 1. 1. 1.]
[1.00000000e+00 2.70000000e+01 3.12500000e+03 8.23543000e+05
3.87420489e+08]
[0. 0. 0. 0. 0.]
'''
统计函数
最值
a=np.array([[1,2,3],
[4,5,6],
[7,8,9]])
print(np.amin(a)) #最小值
print(np.amin(a,axis=0))
print(np.amin(a,axis=1))
print(np.amax(a)) #最大值
print(np.amax(a,axis=0))
print(np.amax(a,axis=1))
print(np.ptp(a)) #最大值与最小值之差
print(np.ptp(a,axis=0))
print(np.ptp(a,axis=1))
'''
运行结果
1
[1 2 3]
[1 4 7]
9
[7 8 9]
[3 6 9]
8
[6 6 6]
[2 2 2]
'''
百分位数、中位数、平均数、加权平均数
#百分位数
a=np.array([[1,2,3],
[4,5,6],
[7,8,9]])
#第二项p取值范围是0-100,如果p=0,那么就是最小值;如果p=50就是求平均值,如果p=100是求最大值
print(np.percentile(a,50))
print(np.percentile(a,50,axis=0))
print(np.percentile(a,50,axis=1))
#中位数
print(np.median(a))
print(np.median(a,axis=0))
print(np.median(a,axis=1))
#平均数
print(np.mean(a))
print(np.mean(a,axis=0))
print(np.mean(a,axis=1))
#加权平均值
a=np.array([1,2,3,4])
wts=np.array([1,2,3,4])
print(np.average(a))
print(np.average(a,weights=wts))
'''
运行结果
5.0
[4. 5. 6.]
[2. 5. 8.]
5.0
[4. 5. 6.]
[2. 5. 8.]
5.0
[4. 5. 6.]
[2. 5. 8.]
2.5
3.0
'''
标准差、方差
a=np.array([1,2,3,4])
print(np.std(a)) #标准差
print(np.var(a)) #方差
'''
运行结果
1.118033988749895
1.25
'''
排序
#排序
a=np.array([[4,3,2],
[2,4,1]])
print(np.sort(a))
print(np.sort(a,axis=None)) #降维排序
print(np.sort(a,axis=0)) #按列排序
print(np.sort(a,axis=1)) #按行排序
'''
运行结果
[[2 3 4]
[1 2 4]]
[1 2 2 3 4 4]
[[2 3 1]
[4 4 2]]
[[2 3 4]
[1 2 4]]
'''
如何理解axis
理解python中对矩阵操作的思维模式
2*4,指外层矩阵有两个元素,内层矩阵有4个元素
例如([0,1,2,3],
[4,5,6,7])
这个矩阵外层两个元素为[0,1,2,3]和[4,5,6,7]
第一个外层矩阵的内层矩阵有0,1,2,3四个元素
这样就能理解axis了
之前将axis=0理解为纵向从上到下,axis=1理解为横向从左到右
现在可以知道,axis=0指第一维度,也就是矩阵外层;axis=1指第二维度,也就是矩阵内层
三维矩阵比较时,
axis=0为第一维度(最外层)对应坐标点上值比较;
axis=1为第二维度(次外层)对应坐标点上值比较;
axis=2为第三维度(内层)对应坐标点上值比较。
例如:
([[[1, 2, 3],
[3, 4, 5],
[6, 7, 8]],
[[6, 7, 8],
[3, 4, 5],
[1, 2, 3]],
[[1, 2, 3],
[6, 7, 8],
[3, 4, 5]]
])
axis=0时,1,6,1;2,7,2;3,8,3;3,3,6…比较
axis=1时,1,3,6;2,4,7;3,5,8;6,3,1…比较
axis=2时,1,2,3;3,4,5;6,7,8;6,7,8…比较