小编var*_*tir的帖子

如何以正确的方式平滑曲线?

让我们假设我们有一个可能大约给出的数据集

import numpy as np
x = np.linspace(0,2*np.pi,100)
y = np.sin(x) + np.random.random(100) * 0.2
Run Code Online (Sandbox Code Playgroud)

因此,我们有20%的数据集变化.我的第一个想法是使用scipy的单变量函数函数,但问题是这不会很好地考虑小噪声.如果你考虑频率,背景远小于信号,所以只有截止的样条可能是一个想法,但这将涉及来回傅里叶变换,这可能导致不良行为.另一种方式是移动平均线,但这也需要正确选择延迟.

任何提示/书籍或链接如何解决这个问题?

例

python signal-processing numpy data-processing scipy

170
推荐指数
8
解决办法
20万
查看次数

ipython notebook --pylab inline:缩放绘图

如果内联被激活,是否可以放大图?特别是对于3d图,旋转和缩放是必要的特征.

python matplotlib ipython

68
推荐指数
5
解决办法
4万
查看次数

numpy.polyfit的错误是什么?

我想numpy.polyfit用于物理计算,因此我需要误差的大小.

python numpy curve-fitting

26
推荐指数
2
解决办法
4万
查看次数

用于打印的正则表达式(vim)...用于将python2打印(...)到python3

只有在print命令中包含字符串时,此帖子才有用.现在我有大量的源代码,如

print milk,butter
Run Code Online (Sandbox Code Playgroud)

应格式化为

print(milk,butter)
Run Code Online (Sandbox Code Playgroud)

使用\n捕获行的结尾并不成功.任何提示?

python regex vim python-2.7 python-3.3

11
推荐指数
3
解决办法
2597
查看次数

Matplotlib:缩放后找出xlim和ylim

你肯定知道如何快速地在放大后如何追踪我的身材的极限?我想精确地知道坐标,所以我可以用ax.set_xlim和重现这个图ax.set_ylim.我正在使用标准的qt4agg后端.

编辑:我知道我可以用光标找出下角和上角的两个位置,但也许有正式的方法可以做到这一点?

python matplotlib

9
推荐指数
1
解决办法
5475
查看次数

具有bpython功能的IPython

我非常欣赏bpython的漂亮着色和自动完成,自动提示等等.

问题是,IPython中有一些我不能没有的功能,例如,重载,魔术命令,matplotlib交互,shell交互,Vim交互或IPython笔记本.我知道IPython中也有自动完成功能,但它不像bpython那样好.

有没有办法将bpython放入IPython?


结帐:http://bipython.org/

python ipython bpython

8
推荐指数
1
解决办法
2159
查看次数

时变频率的频谱图与标度图

我正在比较特定信号的 FFT 与 CWT。

我不清楚如何从 CWT 的相应比例图中读取相应的频率和幅度。此外,我的印象是 CWT 相当不精确?

频谱图在预测精确频率方面似乎非常好,但对于 CWT,我尝试了许多不同的小波,结果是一样的。

我监督了什么吗?这不是解决这个问题的合适工具吗?

在下面,您可以找到我的示例源代码和相应的图。

import matplotlib.pyplot as plt
import numpy as np
from numpy import pi as ?
from scipy.signal import spectrogram
import pywt

f_s = 200              # Sampling rate = number of measurements per second in [Hz]
t   = np.arange(-10,10, 1 / f_s) # Time between [-10s,10s].
T1  = np.tanh(t)/2  + 1.0 # Period in [s]
T2  = 0.125               # Period in [s]
f1  = 1 / T1              # Frequency …
Run Code Online (Sandbox Code Playgroud)

python signal-processing fft wavelet pywavelets

8
推荐指数
1
解决办法
1680
查看次数

写双(三)和作为内积?

由于我np.dot被OpenBlas和Openmpi加速,我想知道是否有可能写出双倍数额

for i in range(N):
     for j in range(N):
         B[k,l] += A[i,j,k,l] * X[i,j]
Run Code Online (Sandbox Code Playgroud)

作为内在产品.就在我正在使用的那一刻

B = np.einsum("ijkl,ij->kl",A,X)
Run Code Online (Sandbox Code Playgroud)

但不幸的是它很慢,只使用一个处理器.有任何想法吗?

编辑:我用一个简单的例子对给出的答案进行了基准测试,似乎它们都处于同一数量级:

A = np.random.random([200,200,100,100])
X = np.random.random([200,200])
def B1():
    return es("ijkl,ij->kl",A,X) 
def B2():
    return np.tensordot(A, X, [[0,1], [0, 1]])
def B3():
    shp = A.shape
    return np.dot(X.ravel(),A.reshape(shp[0]*shp[1],1)).reshape(shp[2],shp[3])

%timeit B1()
%timeit B2()
%timeit B3()

1 loops, best of 3: 300 ms per loop
10 loops, best of 3: 149 ms per loop
10 loops, best of 3: 150 ms per loop …
Run Code Online (Sandbox Code Playgroud)

python arrays performance numpy linear-algebra

7
推荐指数
1
解决办法
506
查看次数

使用流中的常量参数创建对象

让我们假设我有一个班级

#include <iostream>
using namespace std;

class Test{
    public:
        friend istream& operator >> (istream& input, Test& test){
            input >> test.dummy;
            return input;
        };
        friend ostream& operator << (ostream& output, Test& test){
            output << test.dummy << endl;
            return output;
        };
    private:
        const int dummy;
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为虚拟是恒定的.有没有办法从文件加载并重新创建一个参数是常量的对象?

c++

7
推荐指数
1
解决办法
245
查看次数

numpy.einsum为朱莉娅?(2)

来自这个问题,我想知道是否有更广泛的einsum是可能的.让我们假设,我遇到了问题

using PyCall
@pyimport numpy as np

a = rand(10,10,10)
b = rand(10,10)
c = rand(10,10,10)

Q = np.einsum("imk,ml,lkj->ij", a,b,c)
Run Code Online (Sandbox Code Playgroud)

或类似的东西,我怎么解决这个问题而不循环总和?

最诚挚的问候

numpy julia numpy-einsum

5
推荐指数
1
解决办法
472
查看次数