小编Cle*_*leb的帖子

在Python中使用pandas + statsmodels的VAR模型

我是R的狂热用户,但最近由于几个不同的原因切换到Python.但是,我正在努力从statsmodels运行Python中的矢量AR模型.

,Q#1.我运行时遇到错误,我怀疑它与我的矢量类型有关.

    import numpy as np
    import statsmodels.tsa.api
    from statsmodels import datasets
    import datetime as dt
    import pandas as pd
    from pandas import Series
    from pandas import DataFrame
    import os

    df = pd.read_csv('myfile.csv')
    speedonly = DataFrame(df['speed'])
    results = statsmodels.tsa.api.VAR(speedonly)

    Traceback (most recent call last):
    File "<pyshell#14>", line 1, in <module>
      results = statsmodels.tsa.api.VAR(speedonly)
    File "C:\Python27\lib\site-packages\statsmodels\tsa\vector_ar\var_model.py", line 336, in __init__
      super(VAR, self).__init__(endog, None, dates, freq)
    File "C:\Python27\lib\site-packages\statsmodels\tsa\base\tsa_model.py", line 40, in __init__
      self._init_dates(dates, freq)
    File "C:\Python27\lib\site-packages\statsmodels\tsa\base\tsa_model.py", line 54, in _init_dates
      raise ValueError("dates …
Run Code Online (Sandbox Code Playgroud)

python var pandas statsmodels

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

使用NumPy查找元组列表第二元素的中位数

假设我有一个元组列表,如下所示:

list = [(a,1), (b,3), (c,5)]
Run Code Online (Sandbox Code Playgroud)

我的目标是使用元组的第二个元素获取元组列表中值的第一个元素.在上面的例子中,我想要一个b的输出,因为中位数是3.我尝试使用NumPy与下面的代码,无济于事:

import numpy as np

list = [('a',1), ('b',3), ('c',5)]
np.median(list, key=lambda x:x[1])
Run Code Online (Sandbox Code Playgroud)

python tuples numpy

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

优化numpy ndarray索引操作

我有一个看起来如下的numpy操作:

 for i in range(i_max):
    for j in range(j_max):
        r[i, j, x[i, j], y[i, j]] = c[i, j]
Run Code Online (Sandbox Code Playgroud)

在哪里x,yc具有相同的形状.

是否可以使用numpy的高级索引来加速此操作?

我试过用:

i = numpy.arange(i_max)
j = numpy.arange(j_max)
r[i, j, x, y] = c
Run Code Online (Sandbox Code Playgroud)

但是,我没有得到我预期的结果.

python arrays performance numpy vectorization

5
推荐指数
2
解决办法
107
查看次数

Python使用split与数组

是否有任何等效的数组拆分?

a = [1, 3, 4, 6, 8, 5, 3, 4, 5, 8, 4, 3]

separator = [3, 4] (len(separator) can be any)

b = a.split(separator)

b = [[1], [6, 8, 5], [5, 8, 4, 3]]
Run Code Online (Sandbox Code Playgroud)

python arrays split

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

Sympy:integrate()奇怪的输出

我只是学习如何使用sympy,我尝试了一个简单的sin函数集成.当参数sin()具有恒定的相位常数时,integrate()无论相位如何,输出都给出相同的值:0

from sympy import *
w = 0.01
phi = 0.3
k1 = integrate(sin(w*x), (x, 0.0, 10.0))
k2 = integrate(sin(w*x + 0.13), (x, 0.0, 10.0))
k3 = integrate(sin(w*x + phi),(x, 0.0, 10.0))
k1, k2, k3

(0.499583472197429, 0, 0)
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下为什么吗?

python sympy

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

功能类似于numpy的差异

我想知道是否存在一个函数,它会同时计算移动平均值并将其与np.diff

如果你有一个数组,你可以计算移动窗口的平均值(移动平均值)并计算该平均值和下一个1元素之间的差值.

例:

a = [1, 3, 4, 5, 15, 14, 16, 13]
b = np.diff(a)
#np.diff makes something like this: `[n] - [n-1]`
#I want something like this: `[n] - np.mean([n-m : n])`

#I would like to have a function, where I could vary `m`:

m = 2
d = [2, 1.5, 10.5, 4, 1.5, -2]
Run Code Online (Sandbox Code Playgroud)

我将如何实现它,以便时间计算不会那么长,因为我想将它用于26000个元素和更高的数组m

python math numpy scipy

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

更新TensorFlow中的权重子集

有谁知道如何更新前向传播中使用的权重的子集(即只有一些索引)?

我的猜测是,我可以在应用compute_gradients后执行此操作,如下所示:

optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)
grads_vars = optimizer.compute_gradients(loss, var_list=[weights, bias_h, bias_v])
Run Code Online (Sandbox Code Playgroud)

...然后使用元组列表执行某些操作grads_vars.

python machine-learning tensorflow

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

Python:当一个数组被转置时,numpy 数组是否链接?

目前我正在开发一个从文本文件中提取测量数据的 python 脚本。我正在使用 iPython Notebook 和 Python 2.7

现在我在使用 numpy 数组时遇到了一些奇怪的行为。我对此没有任何解释。

myArray = numpy.zeros((4,3))
myArrayTransposed = myArray.transpose()

for i in range(0,4):
    for j in range(0,3):
        myArray[i][j] = i+j

print myArray
print myArrayTransposed
Run Code Online (Sandbox Code Playgroud)

造成:

[[ 0.  1.  2.]
 [ 1.  2.  3.]
 [ 2.  3.  4.]
 [ 3.  4.  5.]]
 [[ 0.  1.  2.  3.]
 [ 1.  2.  3.  4.]
 [ 2.  3.  4.  5.]]
Run Code Online (Sandbox Code Playgroud)

因此,无需处理转置数组,该数组中的值就会更新。

这怎么可能?

python arrays pointers numpy

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

通过add_subplot添加子图后如何共享轴?

我有一个这样的数据框:

df = pd.DataFrame({'A': [0.3, 0.2, 0.5, 0.2], 'B': [0.1, 0.0, 0.3, 0.1], 'C': [0.2, 0.5, 0.0, 0.7], 'D': [0.6, 0.3, 0.4, 0.6]}, index=list('abcd'))     

    A    B    C    D
a  0.3  0.1  0.2  0.6
b  0.2  0.0  0.5  0.3
c  0.5  0.3  0.0  0.4
d  0.2  0.1  0.7  0.6
Run Code Online (Sandbox Code Playgroud)

现在我想将每一行绘制为条形图,其中 y 轴和 x-tick-labels 使用add_subplot.

到目前为止,我只能生成一个如下所示的图: 在此处输入图片说明

有一个问题:

轴不共享,使用后如何做到这一点add_subplot在这里,这个问题是通过创建一个巨大的子图来解决的;有没有办法以不同的方式做到这一点?

我想要的结果看起来像上面的图,唯一的区别是上面一行没有 x-tick-labels,现在右列中有 y-tick-labels。

我目前的尝试如下:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

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

在给定范围内查找函数的根

我有一组f_t具有多个根的函数(实际上是两个)。我想找到“第一个”根,并且在fsolve大多数情况下都可以正常工作。问题是,随着 t 趋于无穷大,两个根会收敛。(我的功能的一个简单例子是f_t(x) = x^2 - 1/t)。所以越大t,犯的错误就越多fsolve。是否有一个预定义的函数,类似于fsolve我可以告诉它应该只在给定范围内查找的函数(例如,始终在[0, inf)中查找根)。

该问题与https://mathematica.stackexchange.com/questions/91784/how-to-find-numerically-all-roots-of-a-function-in-a-given-range?noredirect=1&lq基本相同=1,但是有 Mathematica 的答案,我想要它们在 Python 中。

PS:我现在如何编写自己的算法,但由于这些算法往往比内置函数慢,我希望找到一个可以实现相同功能的内置函数。特别是我读过这篇文章Find root of a function in a given interval

python numpy function scipy

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