@Marie: Wenn du sowieso NumPy benutzt, bietet sich auch an dieses direkt zum Einlesen der Daten zu verwenden. Da du Kommas verwendest muss man leider noch einen Konverter definieren. Grundsätzlich würde ich es empfehlen immer einen Punkt zu verwenden.
Code: Alles auswählen
In [34]: import numpy as np
In [35]: def float2(s):
....: return float(s.replace(',','.'))
....:
In [36]: converters = {0: float2, 1: float2, 2: float2, 3: float2}
In [37]: data = np.loadtxt('test.dat', skiprows=1, converters=converters)
In [38]: data
Out[38]:
array([[ 12. , 200.9673, 14.4022, 11.9805],
[ 6. , 33.9673, 18.4022, 23.9805],
[ 24. , 72.9673, 32.4022, 44.9805],
[ 22. , 98.9673, 55.4022, 76.9805]])
Grüße
Gerrit
PS: Die *-Importe in deinem Code sind sehr gefährlich, weil Funktionen aus "numpy" von "math" Funktionen überschrieben werden. Die "math" Funktionen können allerdings nicht mit numpy arrays umgehen, wodurch du früher oder später "seltsame" Fehlermeldungen bekommst.
PPS: Sei dir bewusst das "y = data_array"
keine Kopie von "data_array" an "y" gebunden wird!