Mam dwie trójwymiarowe tablice, aib, i chcę znaleźć podtablę 2D b z elementami, w których a miał minimum wzdłuż trzeciej osi, tj.Znajdź tablicę odpowiadającą minimalnym wartościom wzdłuż osi w innej macierzy.
a=n.random.rand(20).reshape((5,2,2))
b=n.arange(20).reshape((5,2,2))
c=n.argmin(a,2) #indices with minimal value of a
d=n.zeros_like(c) #the array I want
for i in range(5):
for j in range(2):
d[i,j] = b[i,j,c[i,j]]
Czy istnieje sposób, aby uzyskać te wartości bez podwójnej pętli?
Jestem świadomy tej odpowiedzi: replace min value to another in numpy array ale jeśli chcę to do pracy dla moich tablic 3D musiałbym zrobić wiele operacji zmiany kształtu - i zastanawiam się, czy coś jest prostsze.
Zmiana kształtu je do (5,2), a wynik powinien wyglądać 'mgrid' wersji z' ogrid' sugerowane przez inną odpowiedź. – hpaulj
@hpaulj Tak, niestety nie znałem tej funkcji. – Kasramvd