öffnen - python numpy load mat



SciPy statt GNU Octave (1)

Ja, das Python-Ökosystem macht es zu einer brauchbaren Plattform für alltägliche Datenanalyseaufgaben, insbesondere mit der IPython-Schnittstelle (aber ich bleibe hier beim Standard.) Das Argument "[muss] noch keine Sprache lernen" ist stark einer, IMHO, und ist einer der Gründe, warum ich Python für dieses Zeug verwende.

>>> import numpy as np
>>> import scipy.optimize

"Ich brauche normalerweise nur einfache Berechnungen"

>>> x = np.linspace(0, 10, 50)
>>> y = 3*x**2+5+2*np.sin(x)

"bedeutet, Standardabweichung"

>>> y.mean()
106.3687338223809
>>> y.std()
91.395548605660522

"beliebige gewichtete Funktionsanpassung"

>>> def func(x, a, b, c):
...     return a*x**2+b+c*np.sin(x)
... 
>>> ynoisy = y + np.random.normal(0, 0.2, size=len(x))
>>> popt, pcov = scipy.optimize.curve_fit(func, x, ynoisy)
>>> popt
array([ 3.00015527,  4.99421236,  2.03380468])

"Plots mit Fehlerbalken und angepasster Funktion"

xerr = 0.5
yerr = abs(np.random.normal(0.3, 10.0))
fitted_data = func(x, *popt)

# using the simplified, non-object-oriented interface here
# handy for quick plots

from pylab import *
errorbar(x, ynoisy, xerr=xerr, yerr=yerr, c="green", label="actual data")
plot(x, fitted_data, c="blue", label="fitted function")
xlim(0, 10)
ylim(0, 350)
legend()
xlabel("time since post")
ylabel("coolness of Python")
savefig("cool.png")

Für meine Laborversuche schreibe ich kleine Programme, die bei der Datenanalyse helfen. Normalerweise brauche ich nur einfache Berechnungen, Mittelwerte, Standardabweichung, willkürliche gewichtete Funktionsanpassung und Diagramme mit Fehlerbalken und angepasster Funktion.

Mit GNU Octave kann ich das machen. Ich fing an, mehr in die Sprache davon zu lesen, und ich beginne, seine Widersprüchlichkeiten nicht zu mögen und dass ich noch eine andere Sprache lernen muss.

Ich denke also über Python nach, das ich schon seit einiger Zeit verwende, nämlich SciPy und NumPy. Kann ich diese Dinge leicht mit Python machen oder ist es mehr Overhead, um die allgemeine Sprache Python dazu zu bringen, das zu tun, was ich vorhabe?





octave