Vermeiden Sie den Mittelwert des Gleitkommafehlers

weidler

Wenn ich den Mittelwert einer Liste von floats wie folgt berechne

def mean(x):
    sum(x) / len(x)

dann interessieren mich winzige Fehler bei Gleitkommaoperationen normalerweise nicht. Derzeit stehe ich jedoch vor einem Problem, bei dem ich alle Elemente in einer Liste erhalten möchte, die dem Durchschnitt der Liste entsprechen oder überlist diesem liegen .

Auch dies ist normalerweise kein Problem, aber wenn ich auf Fälle stoße, in denen alle Elemente in der Liste gleiche Gleitkommazahlen sind als der von der obigen Funktion berechnete Mittelwert, wird tatsächlich ein Wert über allen Elementen zurückgegeben. Das ist in meinem Fall offensichtlich ein Problem.

Ich brauche eine Problemumgehung, die keine Zuverlässigkeit für python3.x-Bibliotheken beinhaltet (wie z. B. Statistiken).

Bearbeiten: In den Kommentaren wurde vorgeschlagen, Rundungen zu verwenden. Dies führte interessanterweise dazu, dass Fehler seltener waren, aber dennoch auftreten, wie z. B. in diesem Fall:

[0.024484987, 0.024484987, 0.024484987, 0.024484987, ...]  # x
0.024485  # mean
[]  # numbers above mean
BoarGules

Ich glaube, Sie sollten math.fsum()anstelle von verwenden sum. Zum Beispiel:

>>> a = [0.024484987, 0.024484987, 0.024484987, 0.024484987] * 1360001
>>> math.fsum(a) / len(a)
0.024484987

Dies ist, glaube ich, die Antwort, nach der Sie suchen. Unabhängig von der Länge der Ergebnisse werden konsistentere Ergebnisse erzielt aals bei gleichwertiger Verwendung sum().

>>> sum(a) / len(a)
0.024484987003073517

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Vermeiden Sie schnell den Zustand des Datenrennens

Berechnen Sie den Mittelwert des Werts anhand von zwei Tabellen

Finden Sie den Mittelwert des pyspark-Arrays <double>

Vermeiden Sie den Vektorkopierkonstruktor

Vermeiden Sie den Zustand des Schaltkastens anhand von Entwurfsmustern

Vermeiden Sie den Rand innerhalb des Pre-Tags

So vermeiden Sie den Start des Gradle-Daemons in Dockerfile

Ersetzen Sie negative Werte durch den Mittelwert des vorherigen Datensatzes und den aktuellen Wert

Durchlaufen Sie mehrere Ordner und berechnen Sie den Mittelwert des Rasters desselben Ordners R

Berechnen Sie den Mittelwert aus dem Mittelwert in r

So messen Sie den Mittelwert im Bereich des Numpy-Arrays

Berechnen Sie den Mittelwert jeder Spalte des Pandas-Datenrahmens basierend auf der Bedingung (dh Averageifs)

Finden Sie den Mittelwert unter Berücksichtigung des Datums (einschließlich Abwesenheit) in Zeitreihen

R Berechnen Sie den Mittelwert und die Summe des Werts im Datenrahmen mit group_by

Berechnen Sie den lokalen Mittelwert und die Varianz des identifizierten Pixels im Bild

Pandas: Berechnen Sie den Mittelwert des Numpy-Arrays für jede Zeile in einer Spalte

Berechnen Sie den Mittelwert des Arrays mit einem bestimmten Wert aus einem anderen Array

Holen Sie den Mittelwert des numpy-Arrays mit Pandas groupby

Berechnen Sie den Mittelwert des Datensatzes in R, der zwei Bedingungen erfüllt

Berechnen Sie den Mittelwert und die mittlere RT des Teilnehmers, um Ausschlüsse durchzuführen

Berechnen Sie den Mittelwert eines bestimmten Teils des Numpy-Arrays (Bild).

Extrahieren Sie den Mittelwert des Rasters mit Pufferbedingung auf der zweiten Ebene / dem zweiten Attribut

So berechnen Sie den kumulativen Mittelwert eines Blocks des Datenrahmens bis zu jeder Zeile in R

Berechnen Sie den Mittelwert jedes Bildblocks - Python

JAVA 8: Berechnen Sie den Mittelwert

Bestimmen Sie den Mittelwert der Zeitdifferenz

Berechnen Sie den Mittelwert der Zeitzeichenfolge

Berechnen Sie den Mittelwert nach Intervallkoordinaten in Pandas

Berechnen Sie den rollierenden Mittelwert mit Ojalgo

TOP Liste

  1. 1

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  2. 2

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  3. 3

    TypeAhead.js zeigt keine Ausgangsschienen an?

  4. 4

    Deklarieren einer nicht initialisierten Variablen in der Klassendefinition in Python

  5. 5

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  6. 6

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  7. 7

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  8. 8

    Warum funktioniert Phantomjs nicht mit dieser Site?

  9. 9

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  10. 10

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  11. 11

    MongoDB eingebettetes Dokument unterscheiden und filtern

  12. 12

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  13. 13

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  14. 14

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  15. 15

    Aktualisieren des Werts im Json-Objekt in Python

  16. 16

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  17. 17

    Kivy: Machen Sie Scatter gleich groß wie das untergeordnete Etikett oder Bild

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    So vergleichen Sie Werte in verschiedenen Objekten jq

  20. 20

    Teilen Sie die Zeichenfolge durch (') und Leerzeichen, aber lassen Sie alle Leerzeichen zwischen zwei aufeinander folgenden (')

  21. 21

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

heißlabel

Archiv