python: calculate center of mass
Ich habe einen Datensatz mit 4 Spalten: x,y,z und den Wert ein, sagen wir mal:
x y z value
0 0 0 0
0 1 0 0
0 2 0 0
1 0 0 0
1 1 0 1
1 2 0 1
2 0 0 0
2 1 0 0
2 2 0 0
Ich würde gerne berechnen, die Mitte der Masse CM = (x_m,y_m,z_m)
aller Werte. Im vorliegenden Beispiel würde ich mag, um zu sehen (1,1.5,0)
als Ausgabe.
Dachte ich, das muss ein triviales problem, aber ich kann nicht finden, eine Lösung, um es in das internet. scipy.ndimage.measurements.center_of_mass
scheint das richtige zu sein, aber leider, die Funktion gibt immer zwei Werte (anstatt 3). Außerdem, ich finde keine Dokumentation darüber, wie ein ndimage
aus einem array: Würde ich ein numpy-array N der Form (9,4)
? Würde dann N[:,0] die x-Koordinate?
Jede Hilfe wird sehr geschätzt.
- Sorry, was ist die Bedeutung von Wert hier? ist das die Masse? so in der Tat Sie wollen, sind die Mittel der
[1 1 0 1] [1 2 0 1]
? - OK, warum nicht einfach eine Funktion schreiben, die dies tun wird? Es ist triviale Mathematik.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg, die ich denken kann, ist dieser: suchen Sie sich einfach einen Mittelwert der Koordinaten der Masse Komponenten gewichtet, indem jede Komponente Beitrag.
np.average
angenommen GEWICHTE parameter!Wie etwa:
return
, scheint nicht zu haben die richtigen Dimensionen, die für die Multiplikation, und wenn ich fix die scheint es nicht zu geben die richtige Antwort. Was bin ich?Andere Möglichkeit ist die Verwendung des scipy Mitte der Masse: