0
Ich möchte eine etwas dynamische Abfrage basierend auf numpy Array erstellen. Idealerweise sollten die Indizes eines Arrays (uu
) unter den Bedingungen für jede Spalte in einem zweiten Array (cond
) zurückgegeben werden.flexible Abfrage basierend auf zwei numpy Arrays
Das folgende Beispiel zeigt, was ich vorhabe, und es funktioniert mit einer Schleife. Ich frage mich, ob es eine effizientere Methode gibt. Danke für Ihre Hilfe.
import numpy as np
# create an array that has four columns, each contain a vector (here: identical vectors)
n = 101
u = np.linspace(0,100,n)
uu = np.ones((4, n)) * u
# ideally I would like the indices of uu
# (so I could access another array of the same shape as uu)
# that meets the following conditions:
# the condition based on which values in uu should be selected
# in the first column (index 0) all values <= 10. should be selected
# in the second column (index 1) all values <= 20. should be selected
cond = np.array([10,20])
# this gives the correct indices, but in a series of 1D solutions
# this would work as a work-around
for i in range(cond.size):
ix = np.where(uu[i,:] <= cond[i])
print(ix)
# this seems like a work-around using True/False
# but here I am not sure how to best convert this to indices
for i in range(cond.size):
uu[i,:] = uu[i,:] <= cond[i]
print(uu)
'uu [i,:]' wählt Zeilen und Spalten nicht, nicht wahr? Nicht sicher, ob ich die Frage richtig verstanden habe. – Divakar
Sollte nicht immer so viele Spalten haben wie uu? – rmhleo