我是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) 假设我有一个元组列表,如下所示:
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) 我有一个看起来如下的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,y并c具有相同的形状.
是否可以使用numpy的高级索引来加速此操作?
我试过用:
i = numpy.arange(i_max)
j = numpy.arange(j_max)
r[i, j, x, y] = c
Run Code Online (Sandbox Code Playgroud)
但是,我没有得到我预期的结果.
是否有任何等效的数组拆分?
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) 我只是学习如何使用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)
有人可以解释一下为什么吗?
我想知道是否存在一个函数,它会同时计算移动平均值并将其与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?
有谁知道如何更新前向传播中使用的权重的子集(即只有一些索引)?
我的猜测是,我可以在应用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 脚本。我正在使用 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)
因此,无需处理转置数组,该数组中的值就会更新。
这怎么可能?
我有一个这样的数据框:
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) 我有一组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 ×10
numpy ×5
arrays ×3
pandas ×2
scipy ×2
function ×1
math ×1
matplotlib ×1
performance ×1
pointers ×1
split ×1
statsmodels ×1
sympy ×1
tensorflow ×1
tuples ×1
var ×1