SciPy高级数学计算库

线性代数运算

import numpy as np
from scipy import linalg
arr = np.array([[1, 9, 2],[4, 8, 3],[5, 7, 6]])
#计算行列式
print(linalg.det(arr))
#逆矩阵
print(linalg.inv(arr))
#奇异值分解
print(linalg.svd(arr))

快速傅里叶变换

import scipy
import scipy.fftpack
import pylab
from scipy import pi
#对输入信号采样
t = scipy.linspace(0,120,4000)
acc = lambda t: 10*scipy.sin(2*pi*2.0*t) + 5*scipy.sin(2*pi*8.0*t) + 2*scipy.random.random(len(t))
signal = acc(t)
FFT = abs(scipy.fft(signal))
freqs = scipy.fftpack.fftfreq(signal.size, t[1]-t[0])

pylab.subplot(211)
pylab.plot(t, signal)
pylab.subplot(212)
pylab.plot(freqs,20*scipy.log10(FFT),'x')
pylab.show()

优化和拟合

import numpy as np
from scipy import optimize
import pylab as plt

def f(x):
    return x**2 + 20 * np.sin(x)

x = np.arange(-20, 20, 0.1)
plt.plot(x, f(x))
plt.show()
#查看局部最小值
xmin_local = optimize.fminbound(f, 0, 10)
print(xmin_local)
#全局最小值,使用brute暴力搜索
grid = (-2000, 2000, 0.1)
xmin_global = optimize.brute(f, (grid,))
print(xmin_global)

统计和随机数

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
#模拟正态分布
a = np.random.normal(size=1000)
bins = np.arange(-5, 5)
histogram = np.histogram(a, bins=bins, normed=True)[0]
bins = 0.5*(bins[1:] + bins[:-1])
b = stats.norm.pdf(bins)
plt.plot(bins, histogram)
plt.plot(bins, b)
plt.show()
#期望和标准差
loc, std = stats.norm.fit(a)

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值