Probleme mit numpy.savetxt
Verfasst: Dienstag 23. April 2013, 17:29
Hallo alle zusammen,
nachdem ich bisher immer heimlich mitgelesen habe und mir immer wieder tolle Anregungen hohlen konnte, muss ich mich jetzt auch mal mit einer Frage hier an das Forum wenden.
Ich programmiere aktuell an einer Auswerteroutine, welche mir aus einer Zeitserie eine Häufigkeitsverteilung berechnen soll, bzw. dies nur über eine gewisse Spanne der Zeitserie. Das ganze habe ich vor einiger Zeit schonmal selbst programmiert und wollte jetzt, da ich aktuell mein Auswertetool umschreibe, das ganze in numpy realisieren. Grund ist zum einen das Üben mit Numpy und zum anderen wird der Code besser wartbar, da wir hier in unserer Arbeitsgruppe zu mehrt daran arbeiten. Weiterhin wollte ich mal den numba Jit-Compiler testen.
Der Problemcode sieht wie folgt aus
Kurz zur Erklärung. Die Funktion bekommt ein Array mit 3 Spalten (hier inputarrray) und berechnet dann für zwei dieser Spalten die Verteilung. Die Dritte ist hier erstmal unwichtig und wird für andere Sachen benötigt. Mein Problem ist jetzt die np.savetxt. Die Funktion geht wunderbar, wenn ich ihr nur eines der Arrays gebe, egal welches. Sobald ich aber zwei oder mehr Arrays in den Output schreiben will, bekomme ich Probleme. Da leider der Output sehr essentiell ist, muss ich das irgendwie hinbekommen. Die Fehlermeldung ist folgende:
Ich habe die Sufu hier schon bemührt, leider haben mir die gefundenen Threads nicht wirklich eine Antwort geliefert. Ich würde ja auch die Ausgabe verstehen wenn eines der Eingangsarrays problematisch wäre (also mehrdimensional), so ist es allerdings nicht. Ich wäre froh um jegliche art der Hilfe, da ich nach ca. 2h googlen nicht wirklich weiter gekommen bin.
LG
Lemi
nachdem ich bisher immer heimlich mitgelesen habe und mir immer wieder tolle Anregungen hohlen konnte, muss ich mich jetzt auch mal mit einer Frage hier an das Forum wenden.
Ich programmiere aktuell an einer Auswerteroutine, welche mir aus einer Zeitserie eine Häufigkeitsverteilung berechnen soll, bzw. dies nur über eine gewisse Spanne der Zeitserie. Das ganze habe ich vor einiger Zeit schonmal selbst programmiert und wollte jetzt, da ich aktuell mein Auswertetool umschreibe, das ganze in numpy realisieren. Grund ist zum einen das Üben mit Numpy und zum anderen wird der Code besser wartbar, da wir hier in unserer Arbeitsgruppe zu mehrt daran arbeiten. Weiterhin wollte ich mal den numba Jit-Compiler testen.
Der Problemcode sieht wie folgt aus
Code: Alles auswählen
import numpy as np
def freqdist(inputarray,internal_switches,config_file, peptide_name):
#Bestimmung der Auswertespanne
eval_start_lenght = (inputarray[1].size-config_file["anal_lenght"]*1000)
eval_end_lenght = inputarray[1].size
#Wenn es Prozentwerte sind dann
if internal_switches["percent"]==True:
alpha_distri, bin_edges=np.histogram(inputarray[1,0,eval_start_lenght:eval_end_lenght],bins=100,range=(0,1),density=True)
beta_distri, bin_edges=np.histogram(inputarray[2,0,eval_start_lenght:eval_end_lenght],bins=100,range=(0,1),density=True)
#Aktuell noch ein Dummy
else:
print("ACTUALLY NOT IMPLEMENTED")
return
#Ausgabesektion
outfile=open("%s/%s_freqdist.dat" % (config_file["outpath"],peptide_name), 'wb')
np.savetxt(outfile, (bin_edges,alpha_distri), fmt='%.8f')
Code: Alles auswählen
File "/home/alex/anaconda/envs/py3k/lib/python3.3/site-packages/numpy/lib/npyio.py", line 1047, in savetxt
fh.write(asbytes(format % tuple(row) + newline))
TypeError: only length-1 arrays can be converted to Python scalars
LG
Lemi