python ndimage.gaussian_4. Python--Scipy库(上/7-12)

本文详细介绍了Python Scipy库的使用,包括数值积分方法如quad、dblquad,以及插值技术如interp1d和样条插值。通过示例展示了如何进行单积分、双重积分、线性插值和样条曲线的创建。此外,还提及了Scipy的其他功能,如图像处理、优化算法和最小二乘法等。
摘要由CSDN通过智能技术生成

本文非常全面的介绍了Scipy库,希望大家有耐心的看下去。参考链接在最后。

目录:

1. Scipy简介

1.1 子包

1.2 数据结构

2. Scipy开发环境安装

2.1 Windows

2.2 Linux

3. Scipy基本功能

3.1 内在Numpy数组创建

3.2 矩阵

4. Scipy簇聚

4.1 Scipy中实现K-Means

4.2 三个集群计算K均值

5. Scipy常量

5.1 Scipy常量包

5.2 可用常量列表

6. FFTpack

6.1 快速傅立叶变换

6.2 离散余弦变换

7. 积分

7.1 单积分

7.2 多重积分

7.3 双重积分

8. 插值

8.1 插值是什么

8.2 一线插值

8.3 样条曲线

9. 输入/输出

10. Linalg

10.1 线性方程组

10.2 查找行列式

10.3 特征向量与特征值

11. Ndimage

11.1 打开与写入图像文件

11.2 滤镜

11.3 边缘检测

12. 优化算法

12.1 Nelder-Mead单纯形算法

12.2 最小二乘

13. 统计函数

14. CSGraph

15. Scipy空间

16. Scipy ODR

17. Scipy特殊包

----------------------------------------------------------------------------------

7. Scipy积分

当一个函数不能被分析积分,或者很难分析积分时,通常会转向数值积分方法。 SciPy有许多用于执行数值积分的程序。 它们中的大多数都在同一个scipy.integrate库中。 下表列出了一些常用函数。

7.1 单积分

Quad函数是SciPy积分函数的主力。 数值积分有时称为正交积分,因此称为名称。 它通常是在a到b给定的固定范围内执行函数f(x)的单个积分的默认选择。

quad的一般形式是scipy.integrate.quad(f,a,b),其中'f'是要积分的函数的名称。 而'a'和'b'分别是下限和上限。 下面来看看一个高斯函数的例子,它的积分范围是0和1。

首先需要定义这个函数:

这可以使用lambda表达式完成,然后在该函数上调用四方法。

import scipy.integrate

from numpy import exp

f=lambdax:exp(-x**2)

i=scipy.integrate.quad(f,0,1)

print(i)

执行上面示例代码,得到以下结果 -

(0.7468241328124271, 8.291413475940725e-15)

四元函数返回两个值,其中第一个数字是积分值,第二个数值是积分值绝对误差的估计值。

注 - 由于quad需要函数作为第一个参数,因此不能直接将exp作为参数传递。 Quad函数接受正和负无穷作为限制。 Quad函数可以积分单个变量的标准预定义NumPy函数,如exp,sin和cos。

双重和三重积分的机制已被包含到函数dblquad,tplquad和nquad中。 这些函数分别积分了四个或六个参数。 所有内积分的界限都需要定义为函数。

dblquad的一般形式是scipy.integrate.dblquad(func,a,b,gfun,hfun)。 其中,func是要积分函数的名称,'a'和'b'分别是x变量的下限和上限,而gfun和hfun是定义变量y的下限和上限的函数名称。

看看一个执行双重积分方法的示例。

使用lambda表达式定义函数f,g和h。 请注意,即使g和h是常数,它们可能在很多情况下必须定义为函数,正如在这里为下限所做的那样。

import scipy.integrate

from numpy import exp

from math import sqrt

f=lambdax,y:16*x*y

g=lambdax:0

h=lambday:sqrt(1-4*y**2)

i=scipy.integrate.dblquad(f,0,0.5,g,h)

print(i)

执行上面示例代码,得到以下结果 -

(0.5, 1.7092350012594845e-14)

除上述例程外,scipy.integrate还有许多其他积分的程序,其中包括执行n次多重积分的nquad以及实现各种集成算法的其他例程。 但是,quad和dblquad将满足对数值积分的大部分需求。

8. Scipy插值

8.1 插值是什么?

插值是在直线或曲线上的两点之间找到值的过程。 为了帮助记住它的含义,我们应该将“inter”这个词的第一部分想象为“输入”,表示要查看原来数据的“内部”。 这种插值工具不仅适用于统计学,而且在科学,商业或需要预测两个现有数据点内的值时也很有用。

下面创建一些数据,看看如何使用scipy.interpolate包进行插值。

import numpy as np

from scipy import interpolate

import matplotlib.pyplot as plt

x=np.linspace(0,4,12)

y=np.cos(x**2/3+4)

print(x,y)

执行上面示例代码,得到以下结果 -

[ 0. 0.36363636 0.72727273 1.09090909 1.45454545 1.81818182

2.18181818 2.54545455 2.90909091 3.27272727 3.63636364 4. ] [-0.65364362 -0.61966189 -0.51077021 -0.31047698 -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值