Ich versuche, den Hurst-Exponenten einer Zeitreihe in Python zu berechnen, einem Wert, der einige Merkmale einer Zeitreihe für das quantitative Finanzwesen bestimmt. Ich habe eine Zeitreihe beliebiger Länge genommen und gewählt, sie in Stücke von Daten zu zerlegen, ein Prozess, der ein Teil der Berechnung des Hurst-Exponenten ist (eine von mehreren Methoden). Ich schreibe das als eine Funktion. Stellen Sie sich vor ich die Zeitreihe (Preise eines Sicherheits) haben als „y“ und die Anzahl der Stücke I als „n“ wollen:Berechnen des 2D-Mittelwerts eines 3D-gezackten NumPy-Arrays
def hurst(y,n):
y = array_split(y,n)
Das Problem ist, dass jetzt wird das Array in Stücke aufgeteilt, wobei einer der Die Stücke sind nicht gleich groß wie die anderen. Ich möchte den Mittelwert, die Standardabweichung, die mean-zentrierte Reihe, die kumulative Summe der mittleren zentrierten Reihe und den Bereich der kumulativen Summe für jeden Chunk finden. Aber da das Array nicht einheitlich in der Größe ist, habe ich keinen Weg gefunden, dies zu erreichen. Grundsätzlich, wenn ich versuche,
mean(y,axis=0)
Oder 1 oder 2, für die Achse, bekomme ich einen Fehler. Bei der Verwendung von n = 20 ist die Form des Arrays als
gegeben(20,)
Ich dachte, vielleicht „vectorize“ ihr helfen könnte? Aber ich habe nicht recht verstanden, wie man es benutzt. Ich versuche, das Durchlaufen der Daten zu vermeiden.
Beispieldaten, nachdem sie gespalten ist:
[array([[ 1.04676],
[ 1.0366 ],
[ 1.0418 ],
[ 1.0536 ],
[ 1.0639 ],
[ 1.06556],
[ 1.0668 ]]), array([[ 1.056 ],
[ 1.053 ],
[ 1.0521 ],
[ 1.0517 ],
[ 1.0551 ],
[ 1.0485 ],
[ 1.05705]]), array([[ 1.0531],
[ 1.0545],
[ 1.0682],
[ 1.08 ],
[ 1.0728],
[ 1.061 ],
[ 1.0554]]), array([[ 1.0642],
[ 1.0607],
[ 1.0546],
[ 1.0521],
[ 1.0548],
[ 1.0647],
[ 1.0604]])
Typ list
Daten
Was gelöst Typ 'y'? Bitte geben Sie ein Beispiel für einfache Daten –
'y' beginnt als Pandas Datenrahmen. Dann verwende ich 'as_matrix', um es in eine Array-Form zu bringen. Dann verwende ich 'array_split' darauf. Ich denke, die endgültige Form ist 'liste'. Ich bin sehr neu in Python – denbjornen505
Wenn Sie den Typ einer Variablen 'a' wissen möchten, können Sie 'print (Typ (a))' –