相关疑难解决方法(0)

如何使用NumPy计算移动平均线?

似乎没有简单计算numpy/scipy上的移动平均值的函数,导致复杂的解决方案.

我的问题是双重的:

  • 用numpy(正确)实现移动平均线的最简单方法是什么?
  • 由于这看起来非常重要且容易出错,因此有充分的理由不在这种情况下包含电池吗?

python numpy time-series scipy

84
推荐指数
8
解决办法
15万
查看次数

在哪里可以找到scipy的疯狂(平均绝对偏差)?

似乎scipy曾经提供了一个函数mad来计算一组数字的平均绝对偏差:

http://projects.scipy.org/scipy/browser/trunk/scipy/stats/models/utils.py?rev=3473

但是,我无法在当前版本的scipy中找到它.当然可以从存储库中复制旧代码,但我更喜欢使用scipy的版本.我在哪里可以找到它,或者它已被替换或删除?

python scipy statsmodels

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

NumPy版本的"指数加权移动平均线",相当于pandas.ewm().mean()

如何获得NumPy中的指数加权移动平均值,就像下面的熊猫一样

import pandas as pd
import pandas_datareader as pdr
from datetime import datetime

# Declare variables
ibm = pdr.get_data_yahoo(symbols='IBM', start=datetime(2000, 1, 1), end=datetime(2012, 1, 1)).reset_index(drop=True)['Adj Close']
windowSize = 20

# Get PANDAS exponential weighted moving average
ewm_pd = pd.DataFrame(ibm).ewm(span=windowSize, min_periods=windowSize).mean().as_matrix()

print(ewm_pd)
Run Code Online (Sandbox Code Playgroud)

我用NumPy尝试了以下内容

import numpy as np
import pandas_datareader as pdr
from datetime import datetime

# From this post: http://stackoverflow.com/a/40085052/3293881 by @Divakar
def strided_app(a, L, S): # Window len = L, Stride len/stepsize = S
    nrows = ((a.size - …
Run Code Online (Sandbox Code Playgroud)

python performance numpy vectorization pandas

27
推荐指数
7
解决办法
2万
查看次数

从给定步幅/步长的numpy数组中取出子阵列

假设我有一个Python Numpy数组a.

a = numpy.array([1,2,3,4,5,6,7,8,9,10,11])
Run Code Online (Sandbox Code Playgroud)

我想从这个长度为5的数组创建一个子序列矩阵,步长为3.结果矩阵因此如下所示:

numpy.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])
Run Code Online (Sandbox Code Playgroud)

实现这一点的一种可能方式是使用for循环.

result_matrix = np.zeros((3, 5))
for i in range(0, len(a), 3):
  result_matrix[i] = a[i:i+5]
Run Code Online (Sandbox Code Playgroud)

有没有更简洁的方法来实现这个Numpy?

python numpy vectorization

25
推荐指数
2
解决办法
5634
查看次数