Как изменить конкретный массив numpy внутри массива массивов?

#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 , и когда я попытался поместить в него поплавок, поплавок был закруглен.