#python #arrays #numpy #vector #linear-algebra
Вопрос:
Я пишу программу, но мне трудно обновить массив numpy. Код:
print("p: " str(pontoP))
print("d: " str(deslocamento))
novoP = np.array([0,0,0])
novoP = pontoP deslocamento
pontos[i] = novoP
print("p d: " str(pontos[i]))
Вывод:
p: [0. 1. 0.33333333]
d: [ 0. -1. 0.]
p d: [0 0 0]
понтоП, новоП и делокаменто представляют собой массивы 1D numpy (длина 3), а понтос-массив 2D numpy (размер 8 x 3).
Строка novoP = pontoP deslocamento работает: массивы суммируются по элементам. Однако pontos[i] = novoP не удается обновить 2D массив pontos. Что я могу сделать? Желаемый результат-заменить i-й массив pontos содержимым novoP.
Комментарии:
1. что такое
pontos.dtype
?2. @hpaulj. какое-то целое число, доллары за пончики
3. не пытайтесь помещать значения с плавающей точкой в массив int dtype.
4. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Ответ №1:
Благодаря @hpauli я обнаружил , что проблема заключалась в типе массива numpy. Это было int
, и когда я попытался поместить в него поплавок, поплавок был закруглен.