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?

¿Fue útil?

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.

Si usted viene desde el MATLAB mundo, Pylab facilitará su transición. Una vez que haya convertido sus datos a ASCII, pylab.load() hará el resto:

pylab.load(fname, comments='#', delimiter=None, converters=None, 
           skiprows=0, usecols=None, unpack=False, 
           dtype=<type 'numpy.float64'>)

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'])

Yo tenía un aspecto en mlabwrap como un paso para aliviar algunos MATLAB desarrolladores en el uso de Python más.

Pero no he sido capaz de construir limpiamente, y no ejecutar la producción instala aquí, así que estoy muerto en el agua.

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:

  1. Un recurso agradable (independiente de la plataforma) - http://www.python-excel.org/
  2. 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)
  3. 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top