J'ai un certain nombre de valeurs de hauteur sur une grille, spécifiée dans une série de listes: L'exemple ci-dessus indique une grille de 40 m x 20m sous la forme P> [x=0y=0, x=0y=10...][x=10y=0, x=10y=10...] etc.
3 Réponses :
solution: transformer en array 2d Vous pouvez accéder à la grille via X, coordonnées y p> basé sur cela, vous pouvez créer une logique. p> si x = 5, y = 5, vous pouvez créer des index de coins carrés par ceci: p> index: x / 5 +0, x / 5 + 1, y / 5 , y / 5 + 1 ----> en les combinant, vous obtenez [0,0], [0,1], [1,0], [1,1] P> à la fin que vous venez de grille d'alimentation avec ces index p> grille [1,1] code> et etc p>
La construction de votre grille est complexe inutile. Il pourrait être grille = np.vstack ([a, b, c]) code> Votre code construit réellement et alloue la mémoire pour 3 grilles, en supprimant les deux premiers.
Merci. J'ai essayé Vstack et ça vient de prolonger le tableau, mais avec votre code, il le fait mieux
Vous pouvez utiliser scipy.interpoler.interp2d code>
. Le code ci-dessous devrait faire le travail:
import numpy as np from scipy.interpolate import interp2d # Original data (e.g. measurements) a = [3, 1, -2, -3, -3] b = [2, -7, -14, -30, -39] c = [46, 22, 5, -2, -8] x = [0, 10, 20] # x-coordinates y = [0, 10, 20, 30, 40] # y-coordinates # Organise data in matrix z = np.vstack([a, b, c]).T # Create interpolation function f_z = interp2d(x, y, z) # Desired x/y values x_interp = 5 y_interp = 5 # Collect interpolated z-value z_interp = f_z(x_interp, y_interp) print(z_interp) # (result: [-0.25])
Vous pouvez y parvenir avec Interpoler .GriddData code>
fonction de Scipey Code>
.
Avec le code ci-dessous, vous pouvez obtenir la toute interpolation que vous souhaitez à partir de votre grille. p> L'exemple ci-dessus vous donne l'interpolation à OUPUTPOINT CODE>
(5,5) CODE>. Et la sortie donnerait: p>
Vous voudrez peut-être vérifier Cet article
Le poste que vous avez lié s'applique à la plupart des réponses données ici. Peut-être que vous pourriez l'ajouter comme un commentaire à la question initiale, de sorte qu'il est plus susceptible de se faire remarquer par d'autres lecteurs?
Est-ce ce dont vous avez besoin? docs.cipy.org/doc/ Scipey-0.14.0 / Référence / Généré / ...
Vous voudrez peut-être vérifier Cet article