vectores una tutorial transpuesta matriz matrices inversa funciones español elementos ejemplos como calcular array agregar python numpy indexing

tutorial - transpuesta de una matriz en python numpy



usando una matriz numpy como índices del segundo dim de otra matriz? (2)

Puede usar NumPy''s purely integer array indexing :

A[np.arange(A.shape[0]),B.ravel()]

Ejecución de muestra:

In [57]: A Out[57]: array([[0, 1], [2, 3], [4, 5]]) In [58]: B Out[58]: array([[1], [0], [1]]) In [59]: A[np.arange(A.shape[0]),B.ravel()] Out[59]: array([1, 2, 5])

Tenga en cuenta que si B es una matriz 1D o una lista de dichos índices de columna, simplemente puede omitir la operación de aplanamiento con .ravel() .

Ejecución de muestra:

In [186]: A Out[186]: array([[0, 1], [2, 3], [4, 5]]) In [187]: B Out[187]: [1, 0, 1] In [188]: A[np.arange(A.shape[0]),B] Out[188]: array([1, 2, 5])

Esta pregunta ya tiene una respuesta aquí:

Por ejemplo, tengo dos matrices numpy,

A = np.array( [[0,1], [2,3], [4,5]]) B = np.array( [[1], [0], [1]], dtype=''int'')

y quiero extraer un elemento de cada fila de A , y ese elemento está indexado por B , así que quiero los siguientes resultados:

C = np.array( [[1], [2], [5]])

Intenté A[:, B.ravel()] , pero emitirá B , no lo que quiero. También examiné np.take , parece que no es la solución correcta para mi problema.

Sin embargo, podría usar np.choose transponiendo A ,

np.choose(B.ravel(), A.T)

pero alguna otra mejor solución?


C = np.array([A[i][j] for i,j in enumerate(B)])