Esta es una pregunta fácil, pero digamos que tengo una matriz MxN. Todo lo que quiero hacer es extraer columnas específicas y almacenarlas en otra matriz numpy, pero obtengo errores de sintaxis no válidos. Aquí está el código:
extractedData = data[[:,1],[:,9]].
Parece que la línea anterior debería ser suficiente, pero supongo que no. Miré a mi alrededor pero no pude encontrar nada de sintaxis con respecto a este escenario específico.
Suponiendo que desea obtener las columnas 1 y 9 con ese fragmento de código, debería ser:
fuente
si desea extraer solo algunas columnas:
si desea excluir columnas específicas:
fuente
Una cosa que me gustaría señalar es que, si el número de columnas que desea extraer es 1, la matriz resultante no sería una matriz Mx1 como podría esperar, sino una matriz que contiene los elementos de la columna que extrajo.
Para convertirlo a Matrix , se debe usar el método de remodelación (M, 1) en la matriz resultante.
fuente
data[:, 8:9]
. Esto toma la columna ocho pero no elimina la dimensión extra.Sólo:
Las columnas no necesitan estar en orden:
fuente
Una cosa más a la que debe prestar atención al seleccionar columnas de la matriz ND utilizando una lista como esta:
Si está eliminando una dimensión (seleccionando solo una fila, por ejemplo), la matriz resultante se permutará (por alguna razón) . Entonces:
fuente
Puedes usar :
extracted_data = data.ix[:,['Column1','Column2']]
fuente
Creo que la solución aquí ya no funciona con una actualización de la versión de Python, una forma de hacerlo con una nueva función de Python es:
que te da el resultado deseado.
La documentación que puede encontrar aquí: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_numpy.html#pandas.DataFrame.to_numpy
fuente
también puede usar extraídoData = datos ([:, 1], [:, 9])
fuente