Berechnen von Verlusten
Verfasst: Dienstag 26. Mai 2015, 20:27
Hallo zusammen,
ich habe mich hier angemeldet weil ich ein Problem mit numpy habe.
Es geht um Apparaturen die thermische Energie liefern, an bestimmten Zeitpunkten kann man diese aber nicht nutzen. Ich möchte also einen Wirkungsgrad von genutzter zu produzierter Energie berechnen. Nun habe ich aber bemerkt das etwas nicht stimmen kann.
Hier also stark vereinfacht das Programm:
eigentlich sollte für alle eta_calc das gleiche herauskommen, im letzten Fall kommt bei mir aber etwas anderes heraus (np.allclose(eta_calc,eta_calc3) --> False).
Dies hat nichts mit dem "bug" in np.mean() und np.sum() zu tun, was ich mit "dtype = np.float64" ausgeschlossen habe.
Kann mir hierbei jemand helfen?
Wie berechne ich (besonders bei sehr großen float arrays) den korrekten Mittelwert?
Vielen Dank schon mal,
-flabowski
ich habe mich hier angemeldet weil ich ein Problem mit numpy habe.
Es geht um Apparaturen die thermische Energie liefern, an bestimmten Zeitpunkten kann man diese aber nicht nutzen. Ich möchte also einen Wirkungsgrad von genutzter zu produzierter Energie berechnen. Nun habe ich aber bemerkt das etwas nicht stimmen kann.
Hier also stark vereinfacht das Programm:
Code: Alles auswählen
import numpy as np
t = 1000
m = 12
output = (1200*np.random.rand(t,m))**2
usable_output = output.copy()
python_result = np.zeros(m)
for j in range(m):
nutzen = 0.0
aufwand = 0.0
for i in range(t):
if np.random.rand(1)>0.9:
usable_output[i,j] = 0
nutzen += usable_output[i,j]
aufwand += output[i,j]
python_result[j] = nutzen/aufwand
eta_calc = python_result
eta_calc1 = np.sum(usable_output,axis=0)/np.sum(output,axis=0)
eta_calc2 = np.mean(usable_output,axis=0)/np.mean(output,axis=0)
eta_calc3 = np.mean(usable_output/output,axis=0,dtype=np.float64)
Dies hat nichts mit dem "bug" in np.mean() und np.sum() zu tun, was ich mit "dtype = np.float64" ausgeschlossen habe.
Kann mir hierbei jemand helfen?
Wie berechne ich (besonders bei sehr großen float arrays) den korrekten Mittelwert?
Vielen Dank schon mal,
-flabowski