Supongamos que tengo una matriz mxn. Quiero pasar cada columna de esta matriz a una función para realizar alguna operación en toda la columna. ¿Cómo iterar sobre las columnas de la matriz?
Por ejemplo, tengo una matriz de 4 x 3 como
1 99 2
2 14 5
3 12 7
4 43 1
for column in array:
some_function(column)
donde la columna sería "1,2,3,4" en la primera iteración, "99,14,12,43" en la segunda y "2,5,7,1" en la tercera.
Respuestas:
Simplemente repita la transposición de su matriz:
fuente
array.T
no es costoso, ya que solo cambia los 'pasos' dearray
(vea esta respuesta para una discusión interesante)Esto debería darte un comienzo
fuente
Para una matriz tridimensional, puede probar:
Consulte los documentos sobre cómo
array.transpose
funciona. Básicamente, está especificando qué dimensión cambiar. En este caso, estamos cambiando la segunda dimensión (por ejemplo, columnas) a la primera dimensión.fuente
fuente
También puede usar descomprimir para recorrer las columnas
fuente
Por ejemplo, desea encontrar la media de cada columna en la matriz. Creemos la siguiente matriz
La función de la media es
Para hacer lo que se necesita y almacenar el resultado en los 'resultados' del vector de colon
Los resultados son: array ([4.33333333, 5., 5.66666667, 4.])
fuente
Alternativamente, puede usar
enumerate
. Le da el número de columna y los valores de columna también.fuente