Wie berechnet man den Gradienten eines Streudiagramms?Python

Python-Programme
Anonymous
 Wie berechnet man den Gradienten eines Streudiagramms?

Post by Anonymous »

Ich habe ein wohl häufiges Problem, aber ich scheine keine Anleitung im Internet zu finden. Ich habe ein 3D-Numpy-Array, das die Koordinaten von N Punkten enthält:

Code: Select all

In[1]: import numpy as np
In[2]: N = 50
In[3]: coors = np.random.random(size=(N, 3))
Damit die Koordinaten so aussehen:

Code: Select all

In[4]: coors
Out[4]: array([[0.31814402, 0.5884149 , 0.18770077],
[0.6171281 , 0.48166414, 0.13751268],
[...],
[0.6656792 , 0.91069654, 0.37858498]])
Für jeden Punkt in der Liste habe ich einen zugehörigen Wert (wir können ihn als Potenzial sehen), der im Allgemeinen keiner mathematischen Funktion folgt:

Code: Select all

In[5]: val = np.random.random(size=np.size(coors))
Am Ende habe ich eine Art 3D-Streudiagramm, in dem jedem Punkt ein Skalarpotential zugeordnet ist.
Jetzt muss ich den Gradienten dieses Datensatzes in jedem Punkt für die drei möglichen Richtungen berechnen (nennen wir sie X-, Y- und Z-Achse).
Ich habe irgendwo gelesen, dass es nützlich wäre, scipy.spatial.KDTree zu verwenden Funktion, aber ich schaffe es nicht, sie zum Laufen zu bringen: Jedes Mal, wenn ich versuche, sie auszuprobieren, erhalte ich eine zufällige oder sogar eine inkonsistente Genauigkeit. Könnte mir jemand erklären, wie ich es richtig verwende? Oder gibt es vielleicht eine einfachere und „direktere“ Möglichkeit, dies zu tun?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post