'и NumPy.float64' объект не повторяемое
Я пытаюсь выполнить итерацию массива значений, сгенерированных с помощью numpy.linspace:
slX = numpy.linspace(obsvX, flightX, numSPts)
slY = np.linspace(obsvY, flightY, numSPts)
for index,point in slX:
yPoint = slY[index]
arcpy.AddMessage(yPoint)
этот код отлично работал на моем офисном компьютере, но я сел сегодня утром, чтобы работать из дома на другой машине, и эта ошибка возникла:
File "C:tempgssm_arcpy.1.0.3.py", line 147, in AnalyzeSightLine
for index,point in slX:
TypeError: 'numpy.float64' object is not iterable
slX
- это просто массив поплавков, и у скрипта нет проблем с печатью содержимого-просто, по-видимому, итерация через них. Любые предложения о том, что заставляет его ломаться, и возможные исправления?
1 ответов
numpy.linspace()
дает вам одномерный массив NumPy. Например:
>>> my_array = numpy.linspace(1, 10, 10)
>>> my_array
array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
таким образом:
for index,point in my_array
не может работать. Вам понадобится какой-то двумерный массив с двумя элементы во втором измерении:
>>> two_d = numpy.array([[1, 2], [4, 5]])
>>> two_d
array([[1, 2], [4, 5]])
теперь вы можете сделать это:
>>> for x, y in two_d:
print(x, y)
1 2
4 5