TypeError: Nur length-1-Arrays können in Python-Skalare konvertiert werden, während Daten exponentiell angepasst werden
f=np.loadtxt('Single Small Angle 1.txt',unpack=True,skiprows=2)
g=np.loadtxt('Single Small Angle 5.txt',unpack=True,skiprows=2)
x = f-g[:,:11944]
t=range(len(x))
m=math.log10(abs(x))
np.polyfit(t,m)
plt.plot(t,abs(x))
plt.show()
Ich bin mir nur nicht sicher, wie zu beheben mein Problem. Es hält zu sagen:
m=math.log10(abs(x))
TypeError: only length-1 arrays can be converted to Python scalars
InformationsquelleAutor der Frage user3291404 | 2014-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht-numpy-Funktionen wie
math.abs()
odermath.log10()
nicht spielen schön mit numpy-arrays. Ersetzen Sie einfach die Zeile einen Fehler auslösen mit:Abgesehen davon, dass die
np.polyfit()
Anruf wird nicht funktionieren, denn es fehlt ein parameter (und Sie sind nicht die Zuordnung das Ergebnis zur weiteren Verwendung sowieso).InformationsquelleAutor der Antwort Tom Pohl
Hier ist ein weiterer Weg, diesen Fehler zu reproduzieren, die in Python2.7 mit numpy:
Den
np.concatenate
- Methode erzeugt einen Fehler:Wenn Sie die Dokumentation zu Lesen um numpy.verkettendann sieht man es erwartet ein Tupel von numpy array-Objekte. So umgibt die Variablen mit Klammern fixiert:
Dann druckt es:
Was ist denn hier Los?
Fehler ist ein Fall von bubble-up-Implementierung,-itis, verursacht durch die duck-typing-Philosophie von python. Dies ist ein kryptischer low-level-Fehler python Eingeweide kotzen, wenn es erhält einige unerwartete Variablen, Typen, versucht Weg zu laufen und etwas zu tun, bekommt einen Teil des Weges durch, der kotzt, versucht Gegenmaßnahmen ergreifen, fehlschlägt, dann sagt Sie, dass "Sie können nicht refromulate der Subraum-Responder, wenn der wind aus Osten am Dienstag".
In sinnvollere Sprachen wie C++ oder Java, es hätte zu Ihnen gesagt: "Sie können nicht verwenden Sie einen Typ a, wo TypeB erwartet wurde". Aber Python macht es am besten, um die Soldaten auf, tut etwas, was nicht definiert, schlägt fehl, und dann Hände, die Sie wieder ein wenig hilfreicher Fehlermeldung. Die Tatsache, dass wir haben, zu diskutieren, dies ist einer der Gründe, warum ich nicht wie Python, oder Ihr duck-typing-Philosophie.
InformationsquelleAutor der Antwort Eric Leschinski