Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
scipy.special_scipy英语怎么读,希望能够帮助你!!!。
Scipy是基于Numpy的科学计算库,用于数学、科学、工程学等领域,很多有一些高阶抽象和物理模型需要使用Scipy。SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
使用之前需要正确安装scipy模块,我使用的是anaconda的jupyter notebook,已内置scipy,不需要再进行安装。示例代码如下:
>>> from scipy import constants >>> print(constants.acre) #输出一英亩为多少平方米 4046.92
以下列出了SciPy常用的一些模块:
模块名 | 功能 |
---|---|
scipy.cluster | 向量量化 |
scipy.constants | 数学常量 |
scipy.fft | 快速傅里叶变换 |
scipy.integrate | 积分 |
scipy.interpolate | 插值 |
scipy.io | 数据输入输出 |
scipy.linalg | 线性代数 |
scipy.misc | 图像处理 |
scipy.ndimage | N维图像 |
scipy.odr | 正交距离回归 |
scipy.optimize | 优化算法 |
scipy.signal | 信号处理 |
scipy.sparse | 稀疏矩阵 |
scipy.spatial | 空间数据结构和算法 |
scipy.special | 特殊数学函数 |
scipy/stats | 统计函数 |
SciPy常量模块constants提供了许多内置的数学常数。以下实例输出圆周率:
>>> from scipy import constants >>> constants.pi 3.9793
以下实例输出黄金比例:
>>> constants.golden 1.9895
可用dir()函数来查看constants模块包含了哪些常量:
>>> dir(constants) ['Avogadro', 'Boltzmann', 'Btu', 'Btu_IT', 'Btu_th', 'ConstantWarning', 'G', 'Julian_year', 'N_A', 'Planck', 'R', 'Rydberg', 'Stefan_Boltzmann', 'Wien', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_obsolete_constants', 'acre', 'alpha', 'angstrom', 'arcmin', 'arcminute', 'arcsec', 'arcsecond', 'astronomical_unit', 'atm', 'atmosphere', 'atomic_mass', 'atto', 'au', 'bar', 'barrel', 'bbl', 'blob', 'c', 'calorie', 'calorie_IT', 'calorie_th', 'carat', 'centi', 'codata', 'constants', 'convert_temperature', 'day', 'deci', 'degree', 'degree_Fahrenheit', 'deka', 'dyn', 'dyne', 'e', 'eV', 'electron_mass', 'electron_volt', 'elementary_charge', 'epsilon_0', 'erg', 'exa', 'exbi', 'femto', 'fermi', 'find', 'fine_structure', 'fluid_ounce', 'fluid_ounce_US', 'fluid_ounce_imp', 'foot', 'g', 'gallon', 'gallon_US', 'gallon_imp', 'gas_constant', 'gibi', 'giga', 'golden', 'golden_ratio', 'grain', 'gram', 'gravitational_constant', 'h', 'hbar', 'hectare', 'hecto', 'horsepower', 'hour', 'hp', 'inch', 'k', 'kgf', 'kibi', 'kilo', 'kilogram_force', 'kmh', 'knot', 'lambda2nu', 'lb', 'lbf', 'light_year', 'liter', 'litre', 'long_ton', 'm_e', 'm_n', 'm_p', 'm_u', 'mach', 'mebi', 'mega', 'metric_ton', 'micro', 'micron', 'mil', 'mile', 'milli', 'minute', 'mmHg', 'mph', 'mu_0', 'nano', 'nautical_mile', 'neutron_mass', 'nu2lambda', 'ounce', 'oz', 'parsec', 'pebi', 'peta', 'physical_constants', 'pi', 'pico', 'point', 'pound', 'pound_force', 'precision', 'proton_mass', 'psi', 'pt', 'short_ton', 'sigma', 'slinch', 'slug', 'speed_of_light', 'speed_of_sound', 'stone', 'survey_foot', 'survey_mile', 'tebi', 'tera', 'test', 'ton_TNT', 'torr', 'troy_ounce', 'troy_pound', 'u', 'unit', 'value', 'week', 'yard', 'year', 'yobi', 'yotta', 'zebi', 'zepto', 'zero_Celsius', 'zetta']
常量模块包含以下几种单位:公制单位,二进制,以字节为单位,质量单位,角度换算,时间单位,长度单位,压强单位,体积单位,速度单位,温度单位,能量单位,功率单位,力学单位等。
国际单位制词头:(英语:SI prefix)表示单位的倍数和分数,目前有20个词头,大多数是千的整数次幂。如:
kilo | 103 |
---|---|
deci | 10-1 |
micro | 10-6 |
centi | 10-2 |
>>> constants.kilo 1000.0 >>> constants.deci 0.1 >>> constants.micro 1e-06 >>> constants.centi 0.01
二进制前缀:返回字节单位。如:
kibi | 210 |
---|---|
mebi | 220 |
gibi | 230 |
>>> constants.kibi 1024 >>> constants.mebi
质量单位:返回多少千克kg。如:
>>> constants.gram #1克 0.001 >>> constants.metric_ton #1吨 1000.0 >>> constants.pound #1磅 0.
角度单位:返回弧度。
>>> constants.degree #π/180 0.0
时间单位:返回秒数。
>>> constants.minute 60.0 >>> constants.hour 3600.0
长度单位:返回米数。
>>> constants.inch #英寸 0.0254 >>> constants.mile #英里 1609.98
面积单位:返回多少平方米,平方米是面积的公制单位,其定义是:在一平面上,边长为一米的正方形之面积。
>>> constants.acre #英亩 4046.92 >>> constants.hectare #公顷 10000.0
体积单位:返回多少立方米,立方米是容量计量单位,1立方米的容量相当于一个长、宽、高都等于1米的立方体的体积。
>>> constants.gallon #加仑 0.00
速度单位:返回每秒多少米。 #音速
>>> constants.speed_of_sound 340.5
SciPy的optimize模块提供了常用的最优化算法函数实现,可以直接调用这些函数完成某些优化问题,比如查找函数的最小值或方程的根等。NumPy能够找到多项式和线性方程的根,但它无法找到非线性方程的根,如x+cos(x)。可以使用SciPy的optimze.root函数,这个函数需要两个参数:
该函数返回一个对象,其中包含有关解决方案的信息。实际解决方案在返回对象的属性x,查看如下实例,查找x+cos(x)方程的根:
>>> from scipy.optimize import root >>> from math import cos >>> def eqn(x): ... return x+cos(x) ... >>> myroot=root(eqn,0) >>> myroot.x array([-0.]) >>> myroot fjac: array([[-1.]]) fun: array([0.]) message: 'The solution converged.' nfev: 9 qtf: array([-2.e-13]) r: array([-1.]) status: 1 success: True x: array([-0.])
可以使用scipy.optimize.minimize()函数来最小化函数,这里不详细介绍,请看这里。
稀疏矩阵(英语:sparse matrix)指的是在数值分析中绝大多数数值为零的矩阵。反之,如果大部分元素都非零,则这个矩阵是稠密的(Dense)。
上述稀疏矩阵仅包含9个非零元素,另外包含26个零元。SciPy的scipy.sparse模块提供了处理稀疏矩阵的函数。主要使用以下两种类型的稀疏矩阵:
本节主要使用CSR矩阵。通过向scipy.sparse.csr_matrix()函数传递数组来创建一个CSR矩阵:
>>> import numpy as np >>> from scipy.sparse import csr_matrix >>> arr=np.array([0,0,0,0,0,1,1,0,2]) >>> print(csr_matrix(arr)) (0, 5) 1 (0, 6) 1 (0, 8) 2
结果解析:
第一行:在矩阵第一行(索引值0)第六(索引值5)个位置有一个数值1。
第二行:在矩阵第一行(索引值0)第七(索引值6)个位置有一个数值1。
第三行:在矩阵第一行(索引值0)第九(索引值8)个位置有一个数值2。
用data属性查看存储的数据(不含0元素):
>>> arr=np.array([[0,0,0],[0,0,1],[1,0,2]]) >>> arr array([[0, 0, 0], [0, 0, 1], [1, 0, 2]]) >>> csr_matrix(arr).data array([1, 1, 2], dtype=int32)
用count_nonzero()方法计算非0元素的总数:
>>> arr=np.array([[0,0,0],[0,0,1],[1,0,2]]) >>> csr_matrix(arr).count_nonzero() 3
图是各种关系的节点和边的集合,节点是与对象对应的顶点,边是对象之间的连接。SciPy提供了scipy.sparse.csgraph模块来处理图结构。
用scipy模块可以对图使用:
1、dijkstra最短路径算法;
2、floyd算法;
3、bellman ford算法;
4、dfs、bfs算法等图算法。
这里不详细介绍,请看这里。
空间数据又称几何数据,它用来表示物体的位置、形态、大小分布等各方面的信息,比如坐标上的点。SciPy通过scipy.spatial模块处理空间数据,比如判断一个点是否在边界内、计算给定点周围距离最近点以及给定距离内的所有点。
这里不详细介绍,请看这里。
还有【matlab数组】、【插值】、【显著性检验】,估计用不到,就不整理了。
END
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章