Seite 1 von 1

Eignet sich scipy fuer Berechnungen mit Einheiten?

Verfasst: Samstag 28. Juli 2012, 02:12
von Nebelhom
Hi,

wie der Titel sagt, kann man mit Scipy auch Berechnungen mit physikalischen Einheiten durchfuehren? Ich habe in der Doku bisher nur eine Referenz zu der CODATA database gefunden, die die Einheiten fuehrt, aber so richtig einen Verweis darauf, wie man mit Einheiten rechnet, habe ich nicht gefunden.

Bei "mit Einheiten rechnen" meine ich, dass man zum Beispiel 1 m + 1 km berechnen kann, ohne gross selber mit Konvertierungen aktiv zu werden.

Ist das moeglich oder sollte ich lieber auf soetwas wie ScientificPython zurueckgreifen? Das macht genau, was ich will, das letzte Update war jedoch 2007 und ich bin mir nicht sicher, ob das Projekt noch aktiv ist. Mit den unaufhaltsamen, jedoch sehr langsamen Umstellungen verschiedenster Projekte auf Python 3 haette ich "eigentlich" gerne eins, dass noch aktiv ist... ;)

Danke schonmal.

Nebs

Re: Eignet sich scipy fuer Berechnungen mit Einheiten?

Verfasst: Samstag 28. Juli 2012, 20:40
von Sr4l

Code: Alles auswählen

In [1]: from scipy.constants import *

In [2]: 60*minute == 1*hour
Out[2]: True

In [3]: (100*kilo)/(1*hour)
Out[3]: 27.77777777777778
Ob das sinn macht musst du selber wissen.

Re: Eignet sich scipy fuer Berechnungen mit Einheiten?

Verfasst: Sonntag 29. Juli 2012, 01:43
von Nebelhom
@Sr4l: Danke fuer die Antwort. Also "Sinn" machen im Sinne von, warum ich diese Antwort bekomme, ist schon klar. Ist nur natuerlich leider nicht, was ich mir erhofft habe ;)

Wollte natuerlich im Idealfall etwas, dass zum Beispiel bei 2 km / 2 s als Resultat 1 km s^-1 gibt, aber das war mir von Anfang klar, dass das nicht klappt ;)

So wie ich das sehe, beschreiben deine Beispiele ja nur Platzhalter fuer passende Multiplikatoren (minute=60, hour=3600, kilo=1000)...

Nachtrag:
Ok, ich habe in der Doku, den Teil gefunden, auf den du anspielst.

I guess, that'll have to do ;)

Re: Eignet sich scipy fuer Berechnungen mit Einheiten?

Verfasst: Sonntag 29. Juli 2012, 11:35
von Sr4l
http://docs.scipy.org/doc/scipy/referen ... tants.html

Genau schön ist es nicht. Man muss immer noch wissen was man tut. Am Ende kommen immer SI Einheiten raus, aber man kann nicht sagen ob es `m`oder `m/s^2` sind.

Wenn du noch was schöneres findest kannst du es hier schreiben. Ich kenne mich mit SciPy nur wenig aus, nutze es nur für den Import von Matlab her.

Re: Eignet sich scipy fuer Berechnungen mit Einheiten?

Verfasst: Sonntag 29. Juli 2012, 12:19
von Nebelhom
Vollständigkeitshalber erwaehne ich jetzt noch das Modul quantities, was auf den ersten Blick im Grunde dasselbe macht wie Scientific Python, nur etwas neuerem Datum ist.

Beispiel:

Code: Alles auswählen

import quantities as pq

p1 = 20 * pq.kg
p2 = 1 * pq.m
p3 = 10 * pq.s**2

print p1/(p2*p3)
Output waere dabei

Code: Alles auswählen

2.0 kg/(m*s**2)
Natuerlich muss man auf solche Sachen achten wie:

Code: Alles auswählen

p1 = 20 * pq.kg
p2 = 1 * pq.m**(-1)
p3 = 10 * pq.s**(-2)

print p1*p2*p3
Denn das ergibt dann 200.0 kg/(m*s**2)

Ist auf jeden Fall ein Schritt in die richtige Richtung...