python scipy简介

scipy

scipy是一个python开源的数学计算库,可以应用于数学、科学以及工程领域,它是基于numpy的科学计算库。

主要包含了统计学、最优化、线性代数、积分、傅里叶变换、信号处理和图像处理以及常微分方程的求解以及其他科学工程中所用到的计算。

scipy模块介绍

scipy主要通过下面这些包来实现数学算法和科学计算,后面对于scipy的讲解主要也是基于这些包来实现的

  • cluster:包含聚类算法
  • constants:物理和数学上的一些常数
  • fftpack:快速傅里叶变换
  • integrate:积分和常微分方程的求解
  • interpolate:插值和平滑的样条函数
  • io:输入和输出
  • linalg:线性代数
  • ndimage:N维的图像处理
  • ord:回归正交距离
  • optimize:优化和寻根方程
  • signal:信号处理
  • sparse:稀疏矩阵
  • spatial:空间数据结构和算法
  • special:特殊的函数
  • stats:统计分布和函数

文件输入/输出

from scipy import io as spio
import numpy as np
a = np.ones((3, 3))
spio.savemat('file.mat', {
   'a': a})  # savemat as a dictionary
data = spio.loadmat('file.mat', struct_as_record=True)
from scipy import misc
misc.imread('scikit.png')

python scipy简介_第1张图片

特殊函数

特殊函数是先验函数。scipy.special的文档字符串写得非常好,所以我们不在这里列出所有函数。常用的有:

  • 贝塞尔函数,如scipy.special.jn() (整数n阶贝塞尔函数)
  • 椭圆函数: scipy.special.ellipj() (雅可比椭圆函数,……)
  • 伽马函数:scipy.special.gamma(),还要注意scipy.special.gammaln,这个函数给出对数坐标的伽马函数,因此有更高的数值精度。

fftpack

SciPy提供了fftpack模块,包含了傅里叶变换的算法实现。

傅里叶变换简要介绍

傅里叶变换把信号从时域变换到频域,以便对信号进行处理。傅里叶变换在信号与噪声处理、图像处理、音频信号处理等领域得到了广泛应用。

计算机只能处理离散信号,使用离散傅里叶变换(DFT) 是计算机分析信号的基本方法。但是离散傅里叶变换的缺点是:计算量大,时间复杂度太高,当采样点数太高的时候,计算缓慢,由此出现了DFT的快速实现,即快速傅里叶变换FFT。

快速傅里叶变换(FFT)是计算量更小的离散傅里叶变换的一种实现方法,其逆变换被称为快速傅里叶逆变换(IFFT)

import numpy as np
#从fftpack中导入fft(快速傅里叶变化)和ifft(快速傅里叶逆变换)函数
from scipy.fftpack import fft,ifft

#创建一个随机值数组
x = np.array([1.0, 2.0, 1.0, -1.0, 1.5])

#对数组数据进行傅里叶变换
y = fft(x)
print('fft: ')
print(y)
print('\n')

#快速傅里叶逆变换
yinv = ifft(y)
print('ifft: '

你可能感兴趣的:(Python,图像处理,python,scipy,开发语言,图像处理)