精华内容
下载资源
问答
  • Scipy

    2020-02-25 18:19:42
    Scipy简介 Scipy依赖于Numpy(np.dot(nd1,nd2)) Scipy提供了真正的矩阵 Scipy包含的功能:最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解器等 Scipy是高端...

    Scipy简介

    • Scipy依赖于Numpy(np.dot(nd1,nd2))
    • Scipy提供了真正的矩阵
    • Scipy包含的功能:最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解器等
    • Scipy是高端科学计算工具包 matlab == python+numpy+scipy+pandas+matplotlib
    • Scipy由一些特定功能的子模块组成
      在这里插入图片描述

    Scipy文件输入/输出

    from scipy import io as spio
    import numpy as np
    
    a = np.ones((3,3))
    #mat文件是标准的二进制文件
    spio.savemat('./data/file.mat',mdict={'a':a})
    
    #读取图片
    from scipy import misc
    data = misc.imread('./data/moon.png')
    
    #读取保存的文件
    data = spio.loadmat('./data/file.mat')
    data['a']
    
    #保存图片
    misc.imsave('./data/save.png',arr=data)
    
    scipy.misc

    模糊,轮廓,细节,edge_enhance,edge_enhance_more, 浮雕,find_edges,光滑,smooth_more,锐化

    图片处理ndimage

    使用Scipy中的ndimage/misc进行处理
    from scipy import misc,ndimage
    #原始图片
    face = misc.face(gray=True)
    
    #移动图片坐标
    shifted_face = ndimage.shift(face, (50, 50))
    
    #移动图片坐标,并且指定模式
    shifted_face2 = ndimage.shift(face, (-200, 0), mode='wrap')
    
    #旋转图片
    rotated_face = ndimage.rotate(face, -30)
    
    #切割图片
    cropped_face = face[10:-10, 50:-50]
    
    #对图片进行缩放
    zoomed_face = ndimage.zoom(face, 0.5)
    faces = [shifted_face,shifted_face2,rotated_face,cropped_face,zoomed_face]
    
    图片过滤
    from scipy import misc,ndimage
    import numpy as np
    import matplotlib.pyplot as plt
    
    face = misc.face(gray=True)
    
    face = face[:512, -512:]  # 做成正方形
    
    noisy_face = np.copy(face).astype(np.float)
    
    #噪声图片
    noisy_face += face.std() * 0.5 * np.random.standard_normal(face.shape)
    
    #高斯过滤
    blurred_face = ndimage.gaussian_filter(noisy_face, sigma=1)
    
    #中值滤波
    median_face = ndimage.median_filter(noisy_face, size=5)
    
    #signal中维纳滤波
    from scipy import signal
    wiener_face = signal.wiener(noisy_face, (5, 5))
    titles = ['noisy','gaussian','median','wiener']
    faces = [noisy_face,blurred_face,median_face,wiener_face]
    

    scipy.special

    special库中的特殊函数都是超越函数,所谓超越函数是指变量之间的关系不能用有限次加、减、乘、除、乘方、开方 运算表示的函数。

    scipy.linalg
    • scipy.linalg.det():计算方阵的行列式
    • scipy.linalg.inv():计算方阵的逆
    • scipy.linalg.svd():奇异值分解
    scipy.fftpack使用:
    • scipy.fftpack.fftfreq():生成样本序列
    • scipy.fftpack.fft():计算快速傅立叶变换

    你知道的越多,你不知道的越多。
    有道无术,术尚可求,有术无道,止于术。
    如有其它问题,欢迎大家留言,我们一起讨论,一起学习,一起进步

    展开全文
  • SciPy

    2019-09-12 06:43:25
    本文介绍的是狭义的SciPy,即SciPy科学计算工具集,而不是完整的包含NumPy、Matplotlib的SciPy技术栈。 Scipy库构建于NumPy之上,提供了一个用于在Python中进行科学计算的工具集,如数值计算的算法和一些功能函数,...

    本文介绍的是狭义的SciPy,即SciPy科学计算工具集,而不是完整的包含NumPy、Matplotlib的SciPy技术栈。

    Scipy库构建于NumPy之上,提供了一个用于在Python中进行科学计算的工具集,如数值计算的算法和一些功能函数,可以方便的处理数据。主要包含以下内容:

    • 统计
    • 优化
    • 集成
    • 线性代数
    • 傅里叶变换
    • 信号和图像处理

    Scipy和numpy区别,scipy基于numpy以上开发出来,面向科学家和工程师,提供了更为精准和广泛的和函数。scipy几乎实现numpy的所有函数,一般而言如果scipy和numpy都有这个函数的话,应该用scipy,因为scipy中文版旺旺做了改进,效率更高。但是,有一些同名函数,却有着不同的行为,比如log10,linalg.solve。这些不同的行为,最需要我们的注意。

    快速傅里叶变换

        频域:从我们出生看到的世界都是时间贯穿,股票走势、人的身高、汽车的轨迹都会随着时间发生改变。这种以时间作为参照来观察动态世界的方法我们称其为时域分析。而我们想当然的认为万物都在随着时间不停的改变,并且永不会静止下来。但是如果我告诉你,用另一个方法观察世界的话,你会发现世界时永恒不变的,这个静止的世界就叫做频域。

        

    你眼中看似落叶纷飞变化无常的世界,实际只是躺在上帝怀中一份早已谱好的乐章。

    抱歉,这不是一句鸡汤文,而是黑板上确凿的公式:傅里叶同学告诉我们,任何周期函数,都可以看作是不同振幅,不同相位正弦波的叠加。在第一个例子里我们可以理解为,利用对不同琴键不同力度,不同时间点的敲击,可以组合出任何一首乐曲。

    而贯穿时域与频域的方法之一,就是传中说的傅里叶分析。傅里叶分析可分为傅里叶级数(Fourier Serie)和傅里叶变换(Fourier Transformation),我们从简单的开始谈起。

        傅里叶级数(Fourier Series)的频谱

        随着正弦波数量逐渐的增长,他们最终会叠加成一个标准的矩形,大家从中体会到了什么道理?

    随着叠加的递增,所有正弦波中上升的部分逐渐让原本缓慢增加的曲线不断变陡,而所有正弦波中下降的部分又抵消了上升到最高处时继续上升的部分使其变为水平线。一个矩形就这么叠加而成了。但是要多少个正弦波叠加起来才能形成一个标准 90 度角的矩形波呢?不幸的告诉大家,答案是无穷多个。

    傅里叶级数(Fourier Series)的相位谱

    ,我把sin(3x)+sin(5x)的曲线给你,但是前提是你不知道这个曲线的方程式,现在需要你把sin(5x)给我从图里拿出去,看看剩下的是什么。这基本是不可能做到的。

    但是在频域呢?则简单的很,无非就是几条竖线而已。

    所以很多在时域看似不可能做到的数学操作,在频域相反很容易。这就是需要傅里叶变换的地方。尤其是从某条曲线中去除一些特定的频率成分,这在工程上称为滤波,是信号处理最重要的概念之一,只有在频域才能轻松的做到。

    再说一个更重要,但是稍微复杂一点的用途——求解微分方程。(这段有点难度,看不懂的可以直接跳过这段)微分方程的重要性不用我过多介绍了。各行各业都用的到。但是求解微分方程却是一件相当麻烦的事情。因为除了要计算加减乘除,还要计算微分积分。而傅里叶变换则可以让微分和积分在频域中变为乘法和除法,大学数学瞬间变小学算术有没有。

    傅里叶分析当然还有其他更重要的用途,我们随着讲随着提。

    转载于:https://my.oschina.net/u/3955849/blog/2996625

    展开全文
  • scipy

    2018-12-27 16:05:00
    SciPy 中包含一些用于输入和输出的实用模块(misc)。 1.读取图片和保存图 import scipy.misc img=scipy.misc.imread('im.bmp')#读取图片 print(type(img))#图片类型 print(img.dtype)#数据类型...

    因为我们需要对图像进行操作,并且需要使用数组对象来做运算,所以将数组直接保存为图像文件非常有用。

    SciPy 中包含一些用于输入和输出的实用模块(misc)。

    1.读取图片和保存图

     

    import scipy.misc
    img=scipy.misc.imread('im.bmp')#读取图片
    print(type(img))#图片类型
    print(img.dtype)#数据类型
    print(img.shape)#图片大小
    scipy.misc.imsave('im.jpg',img)#保存图片

     

    2.将numpy数组转为图片

    for i in range(20):
        image_array=mnist.train.images[i,:]
        image_array=image_array.reshape(28,28)
        filename=save_dir+'mnist_train_%d.jpg' % i
        scipy.misc.toimage(image_array,cmin=0.0,cmax=1.0).save(filename)

     

    转载于:https://www.cnblogs.com/weiyaqian11/p/10185522.html

    展开全文
  • Python教程:进击机器学习(五)--Scipy

    万次阅读 多人点赞 2017-08-05 21:22:32
    Scipy简介 文件输入和输出scipyio 线性代数操作scipylinalg 快速傅里叶变换scipyfftpack 优化器scipyoptimize 统计工具scipystats Scipy简介Scipy是一个高级的科学计算库,它和Numpy联系很密切,Scipy一般都是操控...

    文章目录


    #Scipy简介
    Scipy是一个高级的科学计算库,它和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算,所以可以说是基于Numpy之上了。Scipy有很多子模块可以应对不同的应用,例如插值运算,优化算法、图像处理、数学统计等。

    以下列出Scipy的子模块:

    模块名 功能
    scipy.cluster 向量量化
    scipy.constants 数学常量
    scipy.fftpack 快速傅里叶变换
    scipy.integrate 积分
    scipy.interpolate 插值
    scipy.io 数据输入输出
    scipy.linalg 线性代数
    scipy.ndimage N维图像
    scipy.odr 正交距离回归
    scipy.optimize 优化算法
    scipy.signal 信号处理
    scipy.sparse 稀疏矩阵
    scipy.spatial 空间数据结构和算法
    scipy.special 特殊数学函数
    scipy.stats 统计函数

    ##文件输入和输出:scipy.io
    这个模块可以加载和保存matlab文件:

    >>> from scipy import io as spio
    >>> a = np.ones((3, 3))
    >>> spio.savemat('file.mat', {'a': a}) # 保存字典到file.mat
    >>> data = spio.loadmat('file.mat', struct_as_record=True)
    >>> data['a']
    array([[ 1.,  1.,  1.],
           [ 1.,  1.,  1.],
           [ 1.,  1.,  1.]])
    

    .关于这个模块的文档:https://docs.scipy.org/doc/scipy/reference/io.html#module-scipy.io

    ##线性代数操作:scipy.linalg
    假如我们要计算一个方阵的行列式,我们需要调用det()函数:

    >>> from scipy import linalg
    >>> arr = np.array([[1, 2],
    ...                 [3, 4]])
    >>> linalg.det(arr)
    -2.0
    >>> arr = np.array([[3, 2],
    ...                 [6, 4]])
    >>> linalg.det(arr) 
    0.0
    

    比如求一个矩阵的逆:

    >>> arr = np.array([[1, 2],
    ...                 [3, 4]])
    >>> iarr = linalg.inv(arr)
    >>> iarr
    array([[-2. ,  1. ],
           [ 1.5, -0.5]])
    

    更多关于scipy.linalg
    .

    ##快速傅里叶变换:scipy.fftpack
    首先我们用numpy初始化正弦信号:

    >>> import numpy as np
    >>> time_step = 0.02
    >>> period = 5.
    >>> time_vec = np.arange(0, 20, time_step)
    >>> sig = np.sin(2 * np.pi / period * time_vec) + \
    ...       0.5 * np.random.randn(time_vec.size)
    

    如果我们要计算该信号的采样频率,可以用scipy.fftpack.fftfreq()函数,计算它的快速傅里叶变换使用scipy.fftpack.fft():

    >>> from scipy import fftpack
    >>> sample_freq = fftpack.fftfreq(sig.size, d=time_step)
    >>> sig_fft = fftpack.fft(sig)
    

    Numpy中也有用于计算快速傅里叶变换的模块:numpy.fft
    但是scipy.fftpack是我们的首选,因为应用了更多底层的工具,工作效率要高一些。关于scipy.fftpack
    更多文档。

    ##优化器:scipy.optimize
    scipy.optimize通常用来最小化一个函数值,我们举个栗子:
    构建一个函数并绘制函数图:

    >>> def f(x):
    ...     return x**2 + 10*np.sin(x)
    >>> x = np.arange(-10, 10, 0.1)
    >>> plt.plot(x, f(x)) 
    >>> plt.show() 
    

    一条曲线

    如果我们要找出这个函数的最小值,也就是曲线的最低点。就可以用到BFGS优化算法(Broyden–Fletcher–Goldfarb–Shanno algorithm):

    >>> optimize.fmin_bfgs(f, 0)
    Optimization terminated successfully.
             Current function value: -7.945823
             Iterations: 5
             Function evaluations: 24
             Gradient evaluations: 8
    array([-1.30644003])
    

    可以得到最低点的值为-1.30644003,optimize.fmin_bfgs(f, 0)第二个参数0表示从0点的位置最小化,找到最低点(该点刚好为全局最低点)。假如我从3点的位置开始梯度下降,那么得到的将会是局部最低点 3.83746663:

    >>> optimize.fmin_bfgs(f, 3, disp=0)
    array([ 3.83746663])
    

    假如你无法选出the global minimum的邻近点作为初始点的话可以使用scipy.optimize.basinhopping()
    ,具体就不展开描述。关于这个模块的其他功能,参考scipy.optimize

    ##统计工具:scipy.stats

    首先我们随机生成1000个服从正态分布的数:

    image.png

    >>> a = np.random.normal(size=1000)
    #用stats模块计算该分布的均值和标准差。
    >>> loc, std = stats.norm.fit(a)
    >>> loc     
    0.0314345570...
    >>> std     
    0.9778613090...
    #中位数
    >>> np.median(a)     
    0.04041769593...
    

    这个工具还是蛮好用的,更多参考:scipy.stats

    还有像scipy的其他模块(计算积分、信号处理、图像处理的模块)就不一一介绍了。其实机器学习最基础的部分还是属于一些统计算法和优化算法。对这一部分还有兴趣继续了解的,戳这里:https://docs.scipy.org/doc/scipy/reference/index.html
    Python中关于科学计算的工具就介绍到这里。

    Ref:http://www.scipy-lectures.org/intro/scipy.html

    展开全文
  • Py之Scipy:Python库之Scipy库的简介、安装、使用方法详细攻略 目录 Scipy库的简介 Scipy库的安装 Scipy库的使用方法 Scipy库的简介 Scipy高级科学计算库:和Numpy联系很密切,Scipy一般都是操控...
  • numba-scipy:numba_scipy扩展了Numba以使其意识到SciPy
  • Scipy Tutorial(Scipy教程)

    2018-04-26 20:40:20
    scipy包含致力于科学计算中常见问题的各个工具箱。它的不同子模块相应于不同的应用。像插值,积分,优化,图像处理,统计,特殊函数等等。 scipy可以与其它标准科学计算程序库进行比较,比如GSL(GNU C或C++科学计算...
  • SciPy(发音为“ Sigh Pie”)是用于数学,科学和工程的开源软件。 它包括用于统计,优化,积分,线性代数,傅立叶变换,信号和图像处理,ODE求解器等的模块。 网站: : 文档: : 邮件列表: : 源代码: : ...
  • Scipy教程

    2020-10-29 09:46:15
    SciPy教程 SciPy简介 SciPy环境设置 SciPy的基本功能 SciPy Cluster SciPy常量 SciPy FFTpack SciPy集成 SciPy插值 SciPy输入和输出 SciPy Linalg SciPy Ndimage SciPy优化 ...
  • Scipy removal

    2020-12-27 06:32:18
    one that does not use <code>solve_banded</code> from scipy. This was the only place in the code where we used scipy and listing it as a dependency meant that users installing brian via pip or easy_...
  • scipy requirements

    2020-12-09 02:50:28
    <div><p>The current scipy requirement for symfit <code>0.5.1</code> is <code>scipy >= 1.0, <1.2, which could cause <code>conda</code> to install symfit <code>0.4.6</code> when the user has ...
  • Scipy简介

    万次阅读 2019-08-04 00:37:01
    Scipy简介 Scipy依赖于Numpy Scipy包含的功能:最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解器等 应用场景:Scipy是高端科学计算工具包,用于数学、科学、...
  • Mastering Scipy

    2017-11-27 16:37:12
    很好的学习scipy的书籍,希望能够用得到好好学习, 谢谢
  • Solve sparse matrix problems, including image segmentations, with SciPy’s sparse module Perform linear algebra by using SciPy packages Explore image alignment (registration) with SciPy’s optimize ...
  • scipy安装包

    2018-05-19 10:33:42
    SciPy是一款方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器
  • Scipy 高级

    千次阅读 2018-05-25 21:14:31
    一、scipy在线性代数应用 使用 scipy.linalg 模块提供标准线性代数运算 网址:http://docs.scipy.org/doc/scipy/reference/linalg.html#module-scipy.linalg 计算行列式函数: linalg.det(arr) 计算...
  • SciPy 安装

    2019-10-16 11:40:04
    章节SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy 插值 SciPy 输入输出 SciPy 线性代数 SciPy 图像处理 SciPy 优化 SciPy 信号...
  • SciPy 统计

    2019-10-24 11:33:44
    章节SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy 插值 SciPy 输入输出 SciPy 线性代数 SciPy 图像处理 SciPy 优化 SciPy 信号...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,372
精华内容 10,948
关键字:

scipy