机器学习测试笔记(4)——scipy

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 机器学习测试笔记(4)——scipy

Scipy高级科学计算库:和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算、统计分析,所以可以说是基于Numpy之上了。Scipy有很多子模块可以应对不同的应用,例如插值运算,优化算法等等。SciPy则是在NumPy的基础上构建的更为强大,应用领域也更为广泛的科学计算包。正是出于这个原因,SciPy需要依赖NumPy的支持进行安装和运行。


Scipy是世界上著名的Python开源科学计算库,建立在Numpy之上。它增加的功能包括数值积分、最优化、统计和一些专用函数。 SciPy函数库在NumPy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。例如线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等等。


Scipy是基于Numpy构建的一个集成了多种数学算法和方便的函数的Python模块。通过给用户提供一些高层的命令和类,SciPypython交互式会话中,大大增加了操作和可视化数据的能力。通过SciPyPython的交互式会话变成了一个数据处理和一个system-prototyping环境,足以和MATLABIDLOctaveR-Lab,以及SciLab抗衡。  更重要的是,在Python中使用SciPy,还可以同时用一门强大的语言————Python来开发复杂和专业的程序。用SciPy写科学应用,还能获得世界各地的开发者开发的模块的帮助。从并行程序到web到数据库子例程到各种类,都已经有可用的给Python程序员了。这些强大的功能,SciPy都有,特别是它的数学库。


Scipy是在PythonNumPy扩展上构建的数学算法和方便函数的集合。它通过为用户提供高级命令和类来操作和可视化数据,为交互式Python会话添加了强大的功能。有了SciPy,交互式Python会话就变成了一个数据处理和系统原型环境,可以与MATLABIDLOctaveR-LabSciLab等系统相匹敌。


Python为基础的SciPy的另一个好处是,它还提供了一种强大的编程语言,可用于开发复杂的程序和专门的应用程序。使用SciPy的科学应用程序受益于世界各地的开发人员在软件领域的许多小众领域中开发的附加模块。从并行编程到web和数据库的子例程和类,Python程序员都可以使用。除了SciPy中的数学库之外,所有这些功能都是可用的


# coding:utf-8
import numpy asnp
from scipyimport constants as C
from scipyimport linalg
from scipyimport integrate
fromscipy.interpolate import interp1d
importmatplotlib.pyplot as plt


1.获得常数


def get_const():
    print("圆周率:\n",C.pi)
    print("黄金分割率:\n",C.golden)
    print("真空中的光束:\n",C.c)
    print("普朗克常数:\n",C.h)
    print("一英里等于多少米:\n",C.mile)
    print("一英寸等于多少米:\n",C.inch)
    print("一度等于多少弧度:\n",C.degree)
    print("一分钟等于多少秒:\n",C.minute)
    print("标准重力加速度:\n",C.g)


圆周率:

3.141592653589793

黄金分割率:

1.618033988749895

真空中的光束:

299792458.0

普朗克常数:

6.62607015e-34

一英里等于多少米:

1609.3439999999998

一英寸等于多少米:

0.0254

一度等于多少弧度:

0.017453292519943295

一分钟等于多少秒:

60.0

标准重力加速度:

9.80665


2.求线性方程组解


defsystem_of_linear_equations():
#2x + y = 5
#3x -4y = -9
    a = np.array([[2,1],[3,-4]])
    b = np.array([5,-9])
    x,y = np.round(linalg.solve(a,b))
print("x=",x,"y=",y)
#x= 1.0 y= 3.0
#2x + y +z = 8
#3x -4y +2z= -3
#x + y + z = 7
    a = np.array([[2,1,1],[3,-4,2],[1,1,1]])
    b = np.array([8,-3,7])
    x,y,z = np.round(linalg.solve(a,b))
print("x=",x,"y=",y,"z=",z)
#x= 1.0 y= 3.0 z= 3.0


3.矩阵运算


defmatrix_operation():
    A = np.array([[2,3],[4,5]])
#3.1 矩阵绝对值
#|A| = det(A) = 2*5-3*4 = 10-12=-2
    x = linalg.det(A)
print("A的矩阵行列式",x)
#A的矩阵行列式 -2.000000000000001
#3.2矩阵的逆矩阵
    iA = linalg.inv(A)
print("A的矩阵的逆矩阵",iA)
#A的矩阵的逆矩阵 [[-2.5  1.5]
#                 [ 2.  -1. ]]
#设A是一个n阶矩阵,若存在另一个n阶矩阵B,使得:AB=BA=E ,则称方阵A可逆,并称方阵B是A的逆矩阵
#3.3矩阵的特征值和特征向量
    λ, v = linalg.eig(A)
print("A的矩阵的特征值",λ)
#设 A 是n阶方阵,如果存在数m和非零n维列向量 x,使得 Ax=mx 成立,则称 m 是矩阵A的一个特征值(characteristic value)或本征值(eigenvalue)。
#A的矩阵的特征值 [-0.27491722+0.j 7.27491722+0.j]
print("A的矩阵的特征向量",v)
#A的矩阵的特征向量 [[-0.79681209 -0.49436913]
#                   [ 0.60422718 -0.86925207]]


4.数值积分


#半圆看做对y的积分,y=(1-x^2)^0.5
defhalf_circle(x):
return (1-x**2)**0.5
#z=(1-x^2-y^2)^0.5
defhalf_sphere(x,y):
return (1-x**2-y**2)**0.5
defnumerical_integration():
#单位圆的面积:x^2+y^2 = 1
    pi_half, err = integrate.quad(half_circle,-1,1)#err为误差
#integrate.quad(f,from,end)f:求积分的函数名,[from,end]: 积分区间
    print("半圆面积:",pi_half,"误差:",err)
    print("2*pi_half:",2*pi_half)
#半圆面积: 1.5707963267948983 误差: 1.0002354500215915e-09
#2*pi_half: 3.1415926535897967
#单位球的体积
    pi_sphere, err = integrate.dblquad(half_sphere,-1,1,
lambda x:-half_circle(x),
lambda x:half_circle(x))
    print("2*pi_sphere",2*pi_sphere)
#2*pi_sphere 4.188790204786397


5.差值运算


definterpolation():
    x = np.linspace(0,10,num=11,endpoint=True)
    y = np.cos(x)
    f1 = interp1d(x,y,kind='linear')
    f2 = interp1d(x,y,kind='cubic')
    xnew = np.linspace(0,10,num=41,endpoint=True)
    plt.plot(x,y,'o',xnew,f1(xnew),'-',xnew,f2(xnew),'--')
    plt.legend(['data','linear','cubic'],loc='best')
    plt.show()


classscipy.interpolate.interp1d(x, y, kind='linear', axis=-1, copy=True,bounds_error=None, fill_value=nan, assume_sorted=False)


参数

介绍

x

(N,) array_like

一维数据

y

(,N,) array_like

N维数据,其中插值维度的长度必须与x长度相同

kind

str or int, optional

给出插值的样条曲线的阶数

'zero' 'nearest':零阶

'slinear' 'linear':线性

'quadratic' 'cubic':二阶和三阶样条曲线,更高阶的曲线可以直接使用整数值指定

axis

int, optional

指定y中插值的轴,默认是y的最后一维

copy

bool, optional

如果Truedefault)类内置xy的备份

bounds_error

bool, optional

如果True(Default),在插值过程中超出x的范围就会报错ValueError;

如果False,超界的值由fill_value指定。

默认是True,除非fill_value='extrapolate'

fill_value

array-like or (array-like, array_like) or “extrapolate”, optional  

assume_sortedbool, optional



image.png


if__name__=="__main__":
    get_const()
    system_of_linear_equations()
    matrix_operation()
    numerical_integration()
    interpolation()


————————————————————————————————


软件安全测试

https://study.163.com/course/courseMain.htm?courseId=1209779852&share=2&shareId=480000002205486

接口自动化测试

https://study.163.com/course/courseMain.htm?courseId=1209794815&share=2&shareId=480000002205486

DevOps 和Jenkins之DevOps

https://study.163.com/course/courseMain.htm?courseId=1209817844&share=2&shareId=480000002205486

DevOps与Jenkins 2.0之Jenkins

https://study.163.com/course/courseMain.htm?courseId=1209819843&share=2&shareId=480000002205486

Selenium自动化测试

https://study.163.com/course/courseMain.htm?courseId=1209835807&share=2&shareId=480000002205486

性能测试第1季:性能测试基础知识

https://study.163.com/course/courseMain.htm?courseId=1209852815&share=2&shareId=480000002205486

性能测试第2季:LoadRunner12使用

https://study.163.com/course/courseMain.htm?courseId=1209980013&share=2&shareId=480000002205486

性能测试第3季:JMeter工具使用

https://study.163.com/course/courseMain.htm?courseId=1209903814&share=2&shareId=480000002205486

性能测试第4季:监控与调优

https://study.163.com/course/courseMain.htm?courseId=1209959801&share=2&shareId=480000002205486

Django入门

https://study.163.com/course/courseMain.htm?courseId=1210020806&share=2&shareId=480000002205486

啄木鸟顾老师漫谈软件测试

https://study.163.com/course/courseMain.htm?courseId=1209958326&share=2&shareId=480000002205486

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
2月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
51 6
|
2月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
40 1
|
3月前
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
1367 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
2月前
|
机器学习/深度学习 数据采集 人工智能
自动化测试的未来:AI与机器学习的融合之路
【10月更文挑战第41天】随着技术的快速发展,软件测试领域正经历一场由人工智能和机器学习驱动的革命。本文将探讨这一趋势如何改变测试流程、提高测试效率以及未来可能带来的挑战和机遇。我们将通过具体案例分析,揭示AI和ML在自动化测试中的应用现状及其潜力。
61 0
|
3月前
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
184 1
|
3月前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
216 1
|
3月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
100 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
237 0
|
3月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
580 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
3月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
88 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)