Python计算库Scipy入门必看教程

2024年10月16日 python高级教程 Python51

1.Scipy介绍

Scipy在Numpy的基础上则加了众多的数学计算,计算以及工程计算中常用的模块,例如线性代数,常微分方程的数值求解,信号处理,图像处理,系数矩阵等。在本章中,将通过实例介绍Scipy中常用的的一些模块。为了方便读者理解,在示例程序中使用matplotlib,TVTK以及Mayavi等扩展绘制二维以及三维图表。

Scipy的special模块是一个非常完整的函数库,其中包含了基本数学函数,特殊数学函数以及Numpy中出现的所有函数。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。

2.Scipy是由针对特定任务的子模块组成:

3.SciPy-数值计算库

import numpy as np
import pylab as pl
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
import scipy
scipy.__version__#查看版本

‘1.0.0’

4.常数和特殊函数

from scipy import constants as C
print (C.c) # 真空中的光速
print (C.h) # 普朗克常数

299792458.0

6.62607004e-34

C.physical_constants["electron mass"]

(9.10938356e-31, ‘kg’, 1.1e-38)

# 1英里等于多少米, 1英寸等于多少米, 1克等于多少千克, 1磅等于多少千克
print(C.mile)
print(C.inch)
print(C.gram)
print(C.pound)

1609.3439999999998

0.0254

0.001

0.45359236999999997

import scipy.special as S
print (1 + 1e-20)
print (np.log(1+1e-20))
print (S.log1p(1e-20))

1.0

0.0

1e-20

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])

[(200, 4), (200, 4), (200, 4), (200, 4)]

#%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);

本文链接:http://so.lmcjl.com/news/15500/

展开阅读全文