scipy库 signal 导入_人工智能J—SciPy 学习笔记介绍

9b0e91e051116078c195755b7a871bfe.png

SciPy是一种免费开源Python库,用于科学计算和技术计算。它包含用于优化、线性代数、积分、插值、特殊函数、FFT、信号及图像处理、ODE求解器以及科学工程中其他常见任务的模块。

现在,组合使用NumPy、SciPy和Matplotlib,作为MATLAB的替代品已经成为趋势。相比MATLAB,Python功能更强大、编程更容易。

SciPy 模块

根据针对的计算领域,SciPy被分成各个不同的模块。下表对这些模块进行了总结:

序号模块描述
1scipy.clusterVector quantization / Kmeans    ‍
2scipy.constants物理和数学常数
3scipy.fftpack傅里叶变换    ‍
4scipy.integrate积分
5scipy.interpolate差值
6scipy.io文件
7scipy.linalg线性代数
8scipy.ndimage多维图像处理
9scipy.odrOrthogonal(正交) distance regression
10scipy.optimize优化
11scipy.signal信号处理
12scipy.sparse稀疏矩阵
13scipy.spatialSpatial data structures and algorithms
14scipy.special特殊函数‍
15scipy.stats统计

SciPy-数值计算库-数学常量,物理常量,单位信息

import scipyprint('scipy版本:',scipy.__version__)from scipy import constants as C#数学常量Mathematical constantsprint('Pi:',C.pi)print('Golden ratio:',C.golden)#物理常数Physical constantsprint ('真空中光速:',C.c) # 真空中的光速print ('普朗克常数:',C.h) # 普朗克常数print('Bohr radius:',C.physical_constants["Bohr radius"]) #数值、单位及误差。

c86d7041dee3c29f91906afed4b29ca9.png

f1ea836e980bbb59f50d3ad445996cc6.png

# 单位信息 print('mile: ',C.mile)    #1英里等于多少米print('inch:',C.inch)     #1英寸等于多少米print('gram:',C.gram)     #1克等于多少千克print('pound:', C.pound)  #1磅等于多少千克

scipy.special特殊函数模块

special模块是一个非常完整的函数库,其中包含了基本数学函数、特殊数学函数以及NumPy中出现的所有函数。

常用特殊函数求值:

伽玛函数

gamma函数是阶乘函数在实数和复数范围上的扩展。

import scipy.special as Sprint('伽马:',S.gamma(0.5))print(S.gamma(1+1j))      # gamma 函数支持复数

fe189b34279b2253f69342f375ec9682.png

对数伽玛函数

gamma函数的增长速度非常快,因为1000的阶乘 已经超过了双精度浮点数的表示范围,因此结果是无穷大。为了计算更大的范围,可以使用 S.gammaln()。

S.gammaln(x)计算ln(|gamma(x)|)的值,它使用特殊的算法,直接计算gamma函数的对数值,因此可以表示更大的范围。

print(S.gammaln(1000))

327fafae4b368cd80243a0fbc4b8a3ad.png

log1p(x)

special模块中的某些函数并不是数学意义上的特殊函数,例如log1p(x)计算log(1+x)的值。这是由于浮点数的精度有限,无法很精确地表示十分接近1的实数。例如无法用浮点数表示”1 + 1e-20”的值,因此“log(1+1e-20)”的值为0,而当使用log1p()时,则可以很精确地计算。实际上当x非常小时,log1p(x)约等于x 。

print (1 + 1e-20)print ('log(1+1e-20: ',np.log(1+1e-20))print ('loglp:',S.log1p(1e-20))

01c36ca641115c4a41f4ff87613b03d7.png

在scipy.special中使用scipy.special.ellipj()函数计算椭圆函数。

46fdd7dab22c44b50ce1e10e9d0b3881.png

m = np.linspace(0.1, 0.9, 4)u = np.linspace(-10, 10, 200)results = S.ellipj(u[:, None], m[None, :])print([y.shape for y in results])

b16369ebbe5d4366b396f6203332e530.png

import numpy as npimport pylab as pl#%figonly=使用广播计算得到的`ellipj()`返回值fig, axes = pl.subplots(2, 2, figsize=(12, 4))labels = ["$sn$", "$cn$", "$dn$", "$\phi$"]for ax, y, label in zip(axes.ravel(), results, labels):    ax.plot(u, y)    ax.set_ylabel(label)    ax.margins(0, 0.1)    axes[1, 1].legend(["$m={:g}$".format(m_) for m_ in m], loc="best", ncol=2);

42fe9e9892e6c8486aac22650c08aa4c.png

一步一步耐心学

a0df50d03d7509b3959c171f8ed823bb.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值