Bir N-boyutlu numpy dizisi x
ve bir (N-1) boyutlu dizin dizisi m
(örneğin, m = x.argmax(axis=-1)
) olduğunu varsayalım. y[i_1, ..., i_N-1] = x[i_1, ..., i_N-1, m[i_1, ..., i_N-1]]
(argmax
örnek için y = x.max(axis=-1)
eşdeğeri olacaktır) y
(N-1) boyutlu dizi oluşturmak istiyorum. N için = 3 Ben keyfi N için bu, nasıl yapacağız benSayısal olarak indeksleme (max/argmax ile ilgili)
y = x[np.arange(x.shape[0])[:, np.newaxis], np.arange(x.shape[1]), m]
sorudur tarafından istediğini elde edebiliriz?
shp = x.shape[:-1]
n_ele = np.prod(shp)
y_out = x.reshape(n_ele,-1)[np.arange(n_ele),m.ravel()].reshape(shp)
en 6 dimensions
bir ndarray
ile örnek bir vaka ele alalım ve en son haline indeksine m = x.argmax(axis=-1)
kullanıyor diyelim -
Teşekkürler! Bu çalışıyor. Sadece son satır – BlindDriver
@BlindDriver Evet '.reshape (shp)' eklemek istiyorum, bu bir yazım hatası oldu. – Divakar