如何csr_matrix以便携式格式保存/加载scipy稀疏?scipy稀疏矩阵在Python 3(Windows 64位)上创建,以在Python 2(Linux 64位)上运行.最初,我使用了pickle(使用protocol = 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]')).
Run Code Online (Sandbox Code Playgroud)
接下来,尝试过numpy.save,numpy.load以及scipy.io.mmwrite()并且scipy.io.mmread()这些方法都没有奏效.
我想使用matplotlib从矢量绘制标准化的直方图.我尝试了以下方法:
plt.hist(myarray, normed=True)
Run Code Online (Sandbox Code Playgroud)
以及:
plt.hist(myarray, normed=1)
Run Code Online (Sandbox Code Playgroud)
但是这两个选项都没有从[0,1]生成y轴,使得直方图的条形高度总和为1.我想生成这样的直方图 - 我该怎么做?
谢谢!
我正在尝试移植一个程序,该程序使用手动插值器(由数学家大学开发)来使用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)
Run Code Online (Sandbox Code Playgroud)
是否有一种明智的方法可以使它不会崩溃,最后一行只是做一个线性推断,将第一个和最后两个点定义的渐变延续到无穷大.
请注意,在真实软件中我实际上并没有使用exp函数 - 这只是为了说明!
更新:
我找到了一个基于这个问题的Scipy Recipe!所以,对于任何有兴趣的人,请直接:
http://scipy-cookbook.readthedocs.io/items/ButterworthBandpass.html
我很难实现最初为一维numpy阵列(时间序列)实现Butterworth带通滤波器的简单任务.
我必须包括的参数是sample_rate,截止频率IN 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, 16) # (?)
# for hardcoded order:
# N = order
b, a = scipy.signal.butter(N, wn, btype='high') # should 'high' be here for bandpass?
sf = scipy.signal.lfilter(b, a, …Run Code Online (Sandbox Code Playgroud) 如何在Python中给出mean,std给出正态分布的概率?我总是可以根据像这个问题中的OP这样的定义明确地编写我自己的函数:在Python中的分布中计算随机变量的概率
只是想知道是否有一个库函数调用将允许你这样做.在我的想象中它会这样:
nd = NormalDistribution(mu=100, std=12)
p = nd.prob(98)
Run Code Online (Sandbox Code Playgroud)
在Perl中有一个类似的问题:如何在Perl中给出正态分布的点处计算概率?.但我没有在Python中看到一个.
Numpy有一个random.normal功能,但它就像采样,而不是我想要的.
你会如何使用Python创建一个qq-plot?
假设您有大量测量并且正在使用一些以XY值作为输入的绘图功能.该函数应绘制测量的分位数与某些分布的相应分位数(正态,均匀......).
得到的图表让我们在测量中评估是否遵循假定的分布.
http://en.wikipedia.org/wiki/Quantile-quantile_plot
R和Matlab都为此提供了现成的函数,但我想知道在Python中实现最干净的方法是什么.
在numpy/scipy中,我有一个存储在数组中的图像.我可以显示它,我想使用savefig 没有任何边框,轴,标签,标题保存它...只是纯粹的图像,没有别的.
我想避免使用PyPNG或者包装scipy.misc.imsave,它们有时会出现问题(它们并不总是安装得很好,savefig()对我来说只是基本的
我正在寻找类似网格网格函数的清晰比较.不幸的是我找不到它!
Numpy http://docs.scipy.org/doc/numpy/reference/提供
mgrid
ogrid
meshgrid
Scitools http://hplgit.github.io/scitools/doc/api/html/index.html提供
ndgrid
boxgrid
理想情况下,总结所有这些的表格将是完美的!
我正在寻找如何重新采样以新尺寸表示图像数据的numpy数组,最好选择插值方法(最近,双线性等).我知道有
scipy.misc.imresize
Run Code Online (Sandbox Code Playgroud)
这通过包装PIL的调整大小功能来完成这一点.唯一的问题是,因为它使用PIL,numpy数组必须符合图像格式,给我最多4个"颜色"通道.
我希望能够使用任意数量的"颜色"通道调整任意图像的大小.我想知道是否有一种简单的方法可以在scipy/numpy中执行此操作,或者如果我需要自己滚动.
关于如何自己编造一个我有两个想法:
scipy.misc.imresize分别在每个通道上运行的函数scipy.ndimage.interpolation.affine_transform对于大数据,第一个可能会很慢,而第二个似乎不提供除样条之外的任何其他插值方法.
对于SciPy稀疏矩阵,可以使用todense()或toarray()转换为NumPy矩阵或数组.反向的功能是什么?
我搜索过,但不知道哪些关键字应该是正确的.
python ×10
scipy ×10
numpy ×7
matplotlib ×2
statistics ×2
graph ×1
image ×1
math ×1
probability ×1