Ich habe ein Array von 10 Zeilen mit 20 Spalten. Jede Spalte entspricht einem Datensatz, der nicht mit irgendeiner Art von kontinuierlicher mathematischer Funktion versehen werden kann (es ist eine Reihe von Zahlen, die experimentell abgeleitet werden). Ich möchte das Integral jeder Spalte zwischen Zeile 4 und Zeile 8 berechnen und dann das erhaltene Ergebnis in einem neuen Array speichern (20 Zeilen x 1 Spalte).Der effizienteste Weg, um ein Integral in einem Datensatzbereich zu berechnen
Ich habe versucht, verschiedene scipy.integrate Module (z. B. Quad, trpz, ...).
Das Problem ist, dass, wie ich verstehe, scipy.integrate auf Funktionen angewendet werden muss, und ich bin mir nicht sicher, wie Sie jede Spalte meines ursprünglichen Arrays in eine Funktion konvertieren. Als eine Alternative dachte ich daran, den Durchschnitt jeder Spalte zwischen Zeile 4 und Zeile 8 zu berechnen, dann diese Zahl mit 4 zu multiplizieren (d. H. 8-4 = 4, das x-Intervall) und dann diese in meine letzte 20x1-Matrix zu speichern. Das Problem ist ... ähm ... dass ich nicht weiß, wie man den Durchschnitt über einen bestimmten Bereich berechnet. Die Frage, die ich stelle, sind:
- Welche Methode ist effizienter/unkomplizierter?
- Können Integrale über einen Datensatz wie den von mir beschriebenen berechnet werden?
- Wie berechne ich den Durchschnitt über eine Reihe von Zeilen?
ich etwas fehle, aber ein integrales ist lediglich die Fläche unter der „Kurve“, so können Sie nur die Werte aufsummieren in jeder Spalte. –
Sie suchen also die Summe, nicht das Integral, oder? –
Das Integral ist die Fläche unter der Kurve, aber das ist gleich dem Mittelwert Ihrer Werte multipliziert mit dem Integrationsfenster. So Integral (f) zwischen a und b = Mittelwert (f) x (b-a) – Annalisa