Gibt es eine Möglichkeit, eine Funktion zu vektorisieren, so dass die Ausgabe ein Array von Mitteln wäre, wobei jeder Mittelwert den Mittelwert der Werte von 0-Index des Eingangsarrays darstellt? Das zu schleifen ist ziemlich einfach, aber ich versuche so effizient wie möglich zu sein. z.B. 0 = Mittelwert (0), 1 = Mittelwert (0-1), n = Mittelwert (0-N)vectorize numpy Mittelwert über die Scheiben eines Arrays
1
A
Antwort
3
der beabsichtigte Betrieb könnte als cumulative averaging
geprägt. Eine naheliegende Lösung würde daher cumulative summation
beinhalten und diese Summierungen durch die Anzahl von Elementen teilen, die für jede derartige Summierung teilnehmen. Somit würde eine vektorisierte Implementierung np.cumsum
einzubeziehen und dann durch die Anzahl der beteiligten Elemente Teilung, die mit np.arange
und verallgemeinert für eine ndarray erhalten werden konnte, wie so -
def cummean(A,axis):
""" Cumulative averaging
Parameters
----------
A : input ndarray
axis : axis along which operation is to be performed
Output
------
Output : Cumulative averages along the specified axis of input ndarray
"""
return np.true_divide(A.cumsum(axis),np.arange(1,A.shape[axis]+1))
2
Wenn Sie in der Lage sind pandas
dort zu verwenden, ist expanding_mean
die arbeiten direkt mit einem NumPy Array:
In [10]: pandas.expanding_mean(np.arange(1, 11))
Out[10]: array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5])
Diese Methode funktioniert auch spaltenweise:
In [11]: A = np.array([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]).T
In [12]: A
Out[12]:
array([[ 1, 1],
[ 2, 1],
[ 3, 1],
[ 4, 1],
[ 5, 1],
[ 6, 1],
[ 7, 1],
[ 8, 1],
[ 9, 1],
[10, 1]])
In [13]: pandas.expanding_mean(A)
Out[13]:
array([[ 1. , 1. ],
[ 1.5, 1. ],
[ 2. , 1. ],
[ 2.5, 1. ],
[ 3. , 1. ],
[ 3.5, 1. ],
[ 4. , 1. ],
[ 4.5, 1. ],
[ 5. , 1. ],
[ 5.5, 1. ]])
Verwandte Themen
- 1. Swap Scheiben Numpy Arrays
- 2. Min, Max und Mittelwert über große NumPy Arrays in Python
- 3. numpy vectorize mehrdimensionale Funktion
- 4. Vectorize eine Operation in Numpy
- 5. Falscher numpy Mittelwert?
- 6. Unterschiedliche Ausgangsindizes für Scheiben in NumPy
- 7. Numpy Mittelwert von Nullwerten
- 8. Numpy vectorize, mit Listen als Argumente
- 9. vectorize NumPy Spatprodukt auf 2D-Array
- 10. Numpy vectorize als Dekorateur mit Argumenten
- 11. `vectorize` für jede Zeile in Numpy
- 12. un-Slicing numpy Arrays
- 13. Berechnen des 2D-Mittelwerts eines 3D-gezackten NumPy-Arrays
- 14. Summe einer Zeile eines NumPy-Arrays
- 15. Assign Wert auf mehrere Scheiben in numpy
- 16. Autokorrelation eines mehrdimensionalen Arrays in numpy
- 17. numpy: Operator - Arrays, die keinen
- 18. Shuffle-Spalten eines Arrays mit Numpy
- 19. Python - NumPy - Tupel als Elemente eines Arrays
- 20. numpy log mit numpy Arrays
- 21. Numpy Mittelwert UND Varianz von Einzelfunktion?
- 22. Python Numpy NDarray Element-weise Mittelwert
- 23. Hohe Leistung Array-Mittelwert
- 24. Vectorize für Schleife über Datenrahmen in R
- 25. Abrufen eines Arrays über JNA
- 26. Abstand zwischen numpy Arrays, spaltenweise
- 27. Speichern Wörterbuch von numpy Arrays
- 28. Verketten numpy Arrays
- 29. Neuanordnung von numpy Arrays
- 30. Numpy Rang 1 Arrays
Was ist der "0-Index" eines Arrays in diesem Kontext? – HeinzKurt
der Anfang des Arrays – Seth
Neugierig, wenn eine der hier aufgeführten Lösungen für Sie arbeiten? – Divakar