Questions tagged «scipy»

SciPy是Python编程语言的算法和数学工具的开源库。

9
使用SciPy的分位数图
您将如何使用Python创建一个qq图? 假设您有大量的测量值,并且正在使用一些将XY值作为输入的绘图功能。该函数应将测量的分位数与某种分布的相应分位数(正态,均匀...)作图。 结果图使我们可以评估测量是否遵循假设的分布。 http://en.wikipedia.org/wiki/Quantile-quantile_plot R和Matlab都为此提供了现成的函数,但是我想知道用Python实现的最干净的方法是什么。

3
如何使用Scipy.signal.butter实现带通Butterworth滤波器
更新: 我发现了基于此问题的Scipy食谱!因此,对于感兴趣的任何人,请直接转到:目录»信号处理»Butterworth Bandpass 我很难实现最初看起来像是为一维numpy数组(时间序列)实现Butterworth带通滤波器的简单任务。 我必须包括的参数是sample_rate,HERTZ的截止频率以及可能的阶数(其他参数(例如衰减,固有频率等)对我来说比较晦涩,因此任何“默认”值都可以)。 我现在所拥有的就是这个,它似乎可以用作高通滤波​​器,但是我不确定自己是否做对了: def butter_highpass(interval, sampling_rate, cutoff, order=5): nyq = sampling_rate * 0.5 stopfreq = float(cutoff) cornerfreq = 0.4 * stopfreq # (?) ws = cornerfreq/nyq wp = stopfreq/nyq # for bandpass: # wp = [0.2, 0.5], ws = [0.1, 0.6] N, wn = scipy.signal.buttord(wp, ws, 3, …


10
如何使scipy.interpolate给出超出输入范围的推断结果?
我正在尝试移植一个使用手推插值器(由数学家colleage开发)的程序,以使用scipy提供的插值器。我想使用或包装scipy插值器,以使其行为与旧的插值器尽可能接近。 这两个函数之间的关键区别在于,在我们的原始插值器中-如果输入值高于或低于输入范围,则我们的原始插值器将推断结果。如果您使用scipy插值器尝试此操作,则会引发一个ValueError。以该程序为例: import numpy as np from scipy import interpolate x = np.arange(0,10) y = np.exp(-x/3.0) f = interpolate.interp1d(x, y) print f(9) print f(11) # Causes ValueError, because it's greater than max(x) 有没有一种明智的方法可以使最后一行不会发生崩溃,而是简单地进行线性外推,将由前两个点定义的渐变继续到无穷大。 请注意,在实际软件中,我实际上并没有使用exp函数-此处仅用于说明!
82 python  math  numpy  scipy 

2
Python Scipy中的两样本Kolmogorov-Smirnov测试
我不知道如何在Scipy中进行两样本KS测试。 阅读文档scipy kstest之后 我可以看到如何测试分布与标准正态分布相同的地方 from scipy.stats import kstest import numpy as np x = np.random.normal(0,1,1000) test_stat = kstest(x, 'norm') #>>> test_stat #(0.021080234718821145, 0.76584491300591395) 这意味着在0.76的p值下,我们不能拒绝两个分布相同的零假设。 但是,我想比较两个分布,看看是否可以拒绝它们相同的零假设,例如: from scipy.stats import kstest import numpy as np x = np.random.normal(0,1,1000) z = np.random.normal(1.1,0.9, 1000) 并测试x和z是否相同 我尝试过天真: test_stat = kstest(x, z) 并得到以下错误: TypeError: 'numpy.ndarray' object …


10
以可移植数据格式保存/加载scipy稀疏csr_matrix
如何csr_matrix以可移植格式保存/加载稀疏稀疏?稀疏稀疏矩阵是在Python 3(Windows 64位)上创建的,以在Python 2(Linux 64位)上运行。最初,我使用pickle(协议= 2,fix_imports = True),但是从Python 3.2.2(Windows 64位)到Python 2.7.2(Windows 32位)不起作用,并出现错误: TypeError: ('data type not understood', <built-in function _reconstruct>, (<type 'numpy.ndarray'>, (0,), '[98]')). 接下来,尝试了numpy.save,numpy.load以及,scipy.io.mmwrite()并且scipy.io.mmread()这些方法都不起作用。
80 python  numpy  scipy 

1
在SciPy中创建低通滤波器-了解方法和单位
我正在尝试使用python过滤嘈杂的心率信号。因为心率永远不应该超过每分钟220次跳动,所以我想过滤掉所有220 bpm以上的噪音。我将220 /分钟转换为3.66666666赫兹,然后将该赫兹转换为rad / s,以获得23.0383461 rad / sec。 采集数据的芯片的采样频率为30Hz,因此我将其转换为rad / s以获得188.495559 rad / s。 在网上查找了一些东西之后,我发现了一些我想做成低通的带通滤波器的功能。这是带通代码的链接,所以我将其转换为: from scipy.signal import butter, lfilter from scipy.signal import freqs def butter_lowpass(cutOff, fs, order=5): nyq = 0.5 * fs normalCutoff = cutOff / nyq b, a = butter(order, normalCutoff, btype='low', analog = True) return b, a …

4
随机播放vs置换numpy
numpy.random.shuffle(x)和之间有什么区别numpy.random.permutation(x)? 我已经阅读了文档页面,但是当我只想随机地对数组元素进行随机排列时,我不明白两者之间是否有任何区别。 确切地说,假设我有一个数组x=[1,4,2,8]。 如果我想生成x的随机排列,那么shuffle(x)和之间有什么区别permutation(x)?

4
MatPlotLib:同一散点图上的多个数据集
我想在同一散点图上绘制多个数据集: cases = scatter(x[:4], y[:4], s=10, c='b', marker="s") controls = scatter(x[4:], y[4:], s=10, c='r', marker="o") show() 上面仅显示了最新的 scatter() 我也尝试过: plt = subplot(111) plt.scatter(x[:4], y[:4], s=10, c='b', marker="s") plt.scatter(x[4:], y[4:], s=10, c='r', marker="o") show()


2
Python中的网格工具(meshgrid mgrid ogrid ndgrid)
我正在寻找类似网状网格功能的清晰对比。不幸的是我找不到它! numpy http://docs.scipy.org/doc/numpy/reference/提供 mgrid ogrid meshgrid Scitools http://hplgit.github.io/scitools/doc/api/html/index.html提供 ndgrid boxgrid 理想情况下,总结所有这些的表格将是完美的!
76 python  numpy  scipy 

3
您如何在Numpy中找到IQR?
是否有内置的Numpy / Scipy函数来查找四分位数范围?我自己可以很容易地做到这一点,但是mean()基本上存在sum/len... def IQR(dist): return np.percentile(dist, 75) - np.percentile(dist, 25)
75 python  numpy  scipy 

6
重新采样表示图像的numpy数组
我正在寻找如何以新的大小重新采样表示图像数据的numpy数组,最好选择插值方法(最近,双线性等)。我知道有 scipy.misc.imresize 通过包装PIL的调整大小功能可以做到这一点。唯一的问题是,由于它使用PIL,因此numpy数组必须符合图像格式,最多只能提供4个“颜色”通道。 我希望能够使用任意数量的“彩色”通道来调整任意图像的大小。我想知道是否有简单的方法可以在scipy / numpy中执行此操作,或者是否需要自己滚动。 对于如何炮制自己,我有两个想法: scipy.misc.imresize分别在每个通道上运行的功能 创建自己的使用 scipy.ndimage.interpolation.affine_transform 对于大数据,第一个可能很慢,而第二个似乎没有提供除样条线之外的任何其他插值方法。

8
如何删除numpy.array中的列
我想删除numpy.array中的选定列。这是我的工作: n [397]: a = array([[ NaN, 2., 3., NaN], .....: [ 1., 2., 3., 9]]) In [398]: print a [[ NaN 2. 3. NaN] [ 1. 2. 3. 9.]] In [399]: z = any(isnan(a), axis=0) In [400]: print z [ True False False True] In [401]: delete(a, z, axis …
74 python  numpy  scipy 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.