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

NumPy基础运算与统计
本文详细介绍NumPy库中的基本数学运算,包括加减乘除等简单运算,以及统计函数如最大值、最小值、平均数、标准差的使用方法。同时,深入探讨了百分位数、中位数、加权平均数的概念,并通过实例展示了如何进行矩阵的排序及正确理解axis参数的作用。

简单运算

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

混合动力汽车(HEV)模型的Simscape模型(Matlab代码、Simulink仿真实现)内容概要:本文档介绍了一个混合动力汽车(HEV)的Simscape模型,该模型通过Matlab代码Simulink仿真工具实现,旨在对混合动力汽车的动力系统进行建模与仿真分析。模型涵盖了发动机、电机、电池、传动系统等关键部件,能够模拟车辆在不同工况下的能量流动与控制策略,适用于动力系统设计、能耗优化及控制算法验证等研究方向。文档还提及该资源属于一个涵盖多个科研领域的MATLAB仿真资源包,涉及电力系统、机器学习、路径规划、信号处理等多个技术方向,配套提供网盘下载链接,便于用户获取完整资源。; 适合人群:具备Matlab/Simulink使用基础的高校研究生、科研人员及从事新能源汽车系统仿真的工程技术人员。; 使用场景及目标:①开展混合动力汽车能量管理策略的研究与仿真验证;②学习基于Simscape的物理系统建模方法;③作为教学案例用于车辆工程或自动化相关课程的实践环节;④与其他优化算法(如智能优化、强化学习)结合,实现控制策略的优化设计。; 阅读建议:建议使用者先熟悉Matlab/Simulink及Simscape基础操作,结合文档中的模型结构逐步理解各模块功能,可在此基础上修改参数或替换控制算法以满足具体研究需求,同时推荐访问提供的网盘链接获取完整代码与示例文件以便深入学习与调试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值