Utilización de indexación de matrices enteras para extraer elementos basados en índices de matrices secundarias
En el escenario dado, el objetivo es recuperar elementos específicos de un matriz A usando índices especificados en una segunda matriz B. En lugar de confiar en np.take o np.choose, un enfoque más sencillo es emplear la indexación de matriz de enteros de NumPy:
A[np.arange(A.shape[0]),B.ravel()]
Así es como este código logra el resultado deseado:
Este enfoque es particularmente útil cuando B es una matriz 1D o una lista de índices de columnas. Al omitir la operación de aplanamiento, el código se vuelve aún más simple:
A[np.arange(A.shape[0]),B]
Ejemplo:
A = np.array([[0, 1], [2, 3], [4, 5]]) B = np.array([1, 0, 1]) result = A[np.arange(A.shape[0]), B] print(result) # Output: [1, 2, 5]
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3