python的scipy库


Scipy有很多子模块可以完成不同的操作,如傅里叶变换、插值运算、优化算法和数学统计等

文件输入输出

傅里叶变换

from scipy.fftpack import *
N = 500
f0 = 10
fs = 500
phy = [2*math.pi*f0*t/fs for t in range(N)]	
sig = [math.cos(i) for i in phy]
sig_fft = fft(sig)

线性代数

解线性方程组
>>> from scipy.linalg import *
>>> A = np.array([[1,4,5], [6,4,2], [8,3,5]])
>>> b = np.array([4,6,8])
>>> x = solve(A,b)
>>> x
array([0.625, 0.375, 0.375])
计算特征值和特征向量
>>> evals = eigvals(A)
>>> evals
array([12.55508516+0.j, -4.52605043+0.j,  1.97096527+0.j])
>>> evals, evecs = eig(A)
>>> evecs
array([[ 0.48407924,  0.75702936,  0.05203827],
       [ 0.50633806, -0.41420767, -0.77485696],
       [ 0.71364491, -0.50531035,  0.62999104]])

特殊函数

在scipy.special中,有一些常用的函数,如

  • 贝塞尔函数,比如scipy.special.jn() (第n个整型顺序的贝塞尔函数)
  • 椭圆函数 (scipy.special.ellipj() Jacobian椭圆函数, …)
  • Gamma 函数: scipy.special.gamma(), 也要注意 scipy.special.gammaln() 将给出更高准确数值的 Gamma的log。
  • Erf, 高斯曲线的面积:scipy.special.erf()

最优化问题

from scipy import optimize
def f(x):
    return 2*x**3 + (x-4)**2 + x**4
fig,ax = plt.subplots()
x = np.linspace(-3,3,200)
ax.plot(x,f(x))
y_min = optimize.fmin_bfgs(f, -2)
array([0.82600516])

概率统计

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
bins = np.arange(-10,10,0.5)
b = stats.norm.pdf(bins)  
plt.figure()
plt.plot(bins, b)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值