Al utilizar Python para reemplazar MATLAB: cómo importar datos?
Pregunta
Quiero utilizar algunas bibliotecas de Python para reemplazar MATLAB. ¿Cómo podría importar datos de Excel en Python (por ejemplo, usando NumPy ) para usarlos?
No sé si Python es una alternativa creíble a MATLAB, pero quiero probarlo. ¿Hay un tutorial?
Solución
Dependiendo de qué tipo de cálculos que está haciendo con MATLAB (y en el que las cajas de herramientas están usando), Python podría ser una buena alternativa a MATLAB.
Python + NumPy + + href="http://en.wikipedia.org/wiki/Matplotlib" rel="nofollow noreferrer"> Matplotlib son la combinación perfecta para empezar.
Para obtener los datos, puede, por ejemplo, guardar los datos directamente en el archivo de texto (suponiendo que no tienen que ver directamente por cuestiones de precisión de punto flotante) y leerlo en Python .
Si los datos son datos de Excel , donde cada valor está separado por un ";" , puede por ejemplo leer el archivo línea por línea, y utilizar el método split () (con ";" como argumento). para obtener cada valor
Para MATLAB hasta la versión 7.1, es posible cargar directamente .mat archivos de Python con el scipy.io.matlab.mio módulo.
Otros consejos
Hay Matplotlib de parcelas y la módulo csv para leer datos de Excel (suponiendo que se puede volcar a CSV ).
Esto es un tutorial sobre la sustitución de MATLAB con Python.
Probablemente hay cientos de maneras que usted puede importar datos de texto en Python.
Sin embargo, desde que desea reemplazar MATLAB , vas estar usando NumPy y probablemente SciPy .
Mantener las cosas simples: utilizar el texto estándar de carga de NumPy:
import numpy
imported_array = numpy.loadtxt('file.txt',delimiter='\t') # Assuming tab-delimiter
print imported_array.shape
pandas es una biblioteca de Python análisis de datos que puede importar / exportar desde Excel con bastante facilidad. He aquí cómo hacerlo:
http://pandas.pydata.org/pandas-docs/ estables / 10min.html # sobresalen
Curso intensivo:
import pandas as pd
data = pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
Si ha guardado datos en formato MATLAB , utilice:
from scipy.io import loadmat
datafile = "yourfile.mat"
data = loadmat(datafile, matlab_compatible=True)
var1 = data['nameOfYourVariable'].squeeze()
var2 = data['nameOfYourOtherVariable'].squeeze()
"No sé si Python es una alternativa creíble a MATLAB"
Para mí (física experimental) Python no sólo es un reemplazo completo para MATLAB (cuando se incluye SciPy y Matplotlib como se mencionó anteriormente), pero es útil para muchas cosas que no sean datos de crujido y visualización (tales son las necesidades generales de programación).
"Voy a tratar de SAGE."
Vale la pena señalar que hay un par de servidores que ejecutan Sage cuales ofrecer la environmet portátil (marque Trate Sage línea en http://www.sagemath.org/ ). Esto es bastante ordenado dado el hecho de que todo lo que necesita es un navegador de Internet y el acceso (no requiere instalación).
En cuanto a la cuestión según lo interpretado por Kevin Buchs (en otra respuesta), la lectura patentada Excel para Python se puede hacer en varios métodos, algunos son plataforma (sistema operativo) dependiente:
- Un recurso agradable (independiente de la plataforma) - http://www.python-excel.org/
- Un ejemplo utilizando XLRD que una vez que encontré útil (esto es lo que solía cuando necesitaba IT): http://code.activestate.com/recipes/483742/ para un ejemplo basado en XLRD (independiente de la plataforma)
- pyexcelerator es otra opción.
Espero que esto ayude. Si no es así, puedo tratar de organizar un código de ejemplo a mí mismo (aunque los que tengo son más de seis años de edad ...). Yo personalmente prefiero, como se propuso en las otras respuestas, para utilizar el formato CSV o ASCII.