Ich versuche, ein Array von Werten mit numpy.linspace erzeugt iterieren:‚numpy.float64‘ Objekt Iterable nicht
slX = numpy.linspace(obsvX, flightX, numSPts)
slY = np.linspace(obsvY, flightY, numSPts)
for index,point in slX:
yPoint = slY[index]
arcpy.AddMessage(yPoint)
Dieser Code auf meinem Büro-Computer fein gearbeitet, aber ich saß heute Morgen nach unten von zu Hause aus auf einer anderen Maschine zu arbeiten und dieser Fehler kam:
File "C:\temp\gssm_arcpy.1.0.3.py", line 147, in AnalyzeSightLine
for index,point in slX:
TypeError: 'numpy.float64' object is not iterable
slX
nur ein Array von Schwimmern ist, und das Skript hat kein Problem, den Inhalt Druck - nur scheinbar durch sie laufen. Irgendwelche Vorschläge für das, was es zum Bruch bringt, und mögliche Korrekturen?
gleiche Versionen von numpy? Die gleichen Versionen von Python? Gleiche Versionen von Arc? Schließlich, müssen Sie in float64 arbeiten? – Jzl5325
Man iteriert nicht über ein Array von Gleitkommazahlen mit 'for index, point in slX:'. Dies funktioniert in keiner Version von Python mit irgendeiner Version von numpy. Haben Sie tatsächlich 'for index, point in enumerate (slX):' auf Ihrem Bürocomputer ausgeführt? Das scheint das zu sein, was Sie erreichen wollen. –
Soll slX ein iterable sein? Sieht so aus, als ob es als 64 Bit Float zurückgegeben wird, weshalb Sie nicht iterieren können. Ist es möglich, dass slX als iterable mit einer Länge von eins zurückgegeben wird und numpy dies als float interpretiert? –