Ich habe eine einzelne Funktion, die ich an eine Reihe von verschiedenen Datensätzen anpassen möchte, alle mit der gleichen Anzahl von Punkten. Zum Beispiel könnte ich ein Polynom für alle Zeilen eines Bildes anpassen wollen. Gibt es einen effizienten und vektorisierten Weg, dies mit scipy oder anderen Paketen zu tun, oder muss ich auf eine einzelne Schleife zurückgreifen (oder Multiprocessing verwenden, um es ein wenig zu beschleunigen)?Gleichzeitige Anpassung an N Datensätze in Python
0
A
Antwort
0
können Sie numpy.linalg.lstsq verwenden:
import numpy as np
# independent variable
x = np.arange(100)
# some sample outputs with random noise
y1 = 3*x**2 + 2*x + 4 + np.random.randn(100)
y2 = x**2 - 4*x + 10 + np.random.randn(100)
# coefficient matrix, where each column corresponds to a term in your function
# this one is simple quadratic polynomial: 1, x, x**2
a = np.vstack((np.ones(100), x, x**2)).T
# result matrix, where each column is one set of outputs
b = np.vstack((y1, y2)).T
solutions, residuals, rank, s = np.linalg.lstsq(a, b)
# each column in solutions is the coefficients of terms
# for the corresponding output
for i, solution in enumerate(zip(*solutions),1):
print "y%d = %.1f + (%.1f)x + (%.1f)x^2" % ((i,) + solution)
# outputs:
# y1 = 4.4 + (2.0)x + (3.0)x^2
# y2 = 9.8 + (-4.0)x + (1.0)x^2
Verwandte Themen
- 1. Python: gleichzeitige Dateisuche
- 2. Aktienkurs Anpassung in Python
- 3. Text Anpassung an Tastengröße
- 4. Gleichzeitige While-Schleifen? PYTHON
- 5. n ** n ** n Heuristiken in Python
- 6. n Datensätze aus n-te Datensatz in Linq
- 7. multilanguage Skript Anpassung an Datenbankverbindung
- 8. Anpassung einer exponentiell modifizierten Gauß'schen Kurve an Daten mit Python
- 9. Gleichzeitige Anfragen an PHP Skript
- 10. Java automatisch Anpassung an die Windows 7 Schriftgröße Anpassung
- 11. Get Last N Minuten Datensätze Dynamodb Streams
- 12. Get 'N' Anzahl der Datensätze in Marklogic
- 13. Wie update ersten n Datensätze in SQLite
- 14. Wie Anpassung Funktion an Daten in C++
- 15. Anpassung an wiederholte Teilstrings in einem Regex
- 16. gleichzeitige Änderungen an XML-Datei in C#
- 17. gleichzeitige Anfrage an Jersey Rest Service
- 18. Zeitreihe in Python 3.5 - Anpassung ARMA-Modell
- 19. Saisonale Anpassung in Python und Scipy
- 20. Wie verwalten gleichzeitige LMDB schreibt in Python?
- 21. Mehrere gleichzeitige Netzwerkverbindungen - Telnet-Server, Python
- 22. Java - Anpassung der Schrift an den Bereich
- 23. Hive - top n Datensätze innerhalb einer Gruppe
- 24. Top-N Datensätze wählen für jede Entität
- 25. UIDatePicker Anpassung
- 26. MPAndroid Anpassung an Bildschirmgröße ohne feste Höhe
- 27. Anpassung an alle Geräte mit automatischem Layout
- 28. HTML-Tabelle Breite Anpassung an Browserfenster
- 29. Python 2.7 Linux \ n Windows \ r \ n
- 30. Python http Server, mehrere gleichzeitige Anfragen
Dank! Funktioniert diese Methode nur für Polynome oder ist es möglich, sie mit beliebigen Funktionen zu verwenden? – astrofrog
@astrofrog: Sie können jede Funktion setzen. z.B. 'a = np.vstack ((np.exp (x), x)). T 'wird versuchen,' A * e^x + B * x 'anzupassen. Konstruieren Sie Ihre Spalten entsprechend. – Avaris