Lassen Sie uns sagen, dass ich ein 4D-Array haben, dieWie ersetzt man Werte in einem 4-dimensionalen Array?
(600, 1, 3, 3)
ist Wenn Sie die ersten zwei Elemente nehmen sie wie folgt aussehen:
0 1 0
1 1 1
0 1 0
2 2 2
3 3 3
1 1 1
etc
ich eine Liste haben, die bestimmte Gewichte enthält, die ich will ersetzen bestimmte Werte im Array. Mein Ziel ist es, den Index des Listenelements mit dem Wert im Array zu vergleichen. Daher ist diese Liste
[0.1 1.1 1.2 1.3]
wenn gegen meine Anordnung angelegt würde dieses Ergebnis liefern:
0.1 1.1 0.1
1.1 1.1 1.1
0.1 1.1 0.1
1.2 1.2 1.2
1.3 1.3 1.3
1.1 1.1 1.1
etc
Dieses Verfahren würde durch die gesamten 600 Elemente des Arrays laufen muß.
Ich kann mit wollte in einer klobigen Art und Weise tue dies eine for
Schleife und array[array==x] = y
oder np.place
aber ich eine Schleife vermeiden und vielleicht eine Methode verwenden, die auf einmal alle Werte ersetzen werden. Gibt es einen solchen Ansatz?
Einfach in die Array-Version indizieren: 'np.asarray (vals) [idx]', wo 'vals' die Liste und' idx' die 4D-Indizes sind? Oder verwenden Sie 'np.take (vals, idx)', um die Array-Konvertierung unter den Hauben durchzuführen. – Divakar
das funktioniert vielleicht, aber wie wenden Sie es auf das 4D Array an? – pepe
Ich habe Ihnen gerade gesagt, dass - "idx" ist das '4D' Array von Indizes. – Divakar