【学习笔记】Numpy运算、统计和排序

简单运算

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…比较

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值