Utilizando indexação de array inteiro para extrair elementos com base em índices de array secundários
No cenário determinado, o objetivo é recuperar elementos específicos de um array A usando índices especificados em um segundo array B. Em vez de confiar em np.take ou np.choose, uma abordagem mais direta é empregar a indexação de array inteiro do NumPy:
A[np.arange(A.shape[0]),B.ravel()]
Veja como esse código atinge o resultado desejado:
Essa abordagem é particularmente útil quando B é uma matriz 1D ou uma lista de índices de colunas. Ao pular a operação de nivelamento, o código se torna ainda mais simples:
A[np.arange(A.shape[0]),B]
Exemplo:
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]
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3