【问题标题】:How to change a specific numpy array inside a arrays of arrays?如何更改数组数组中的特定 numpy 数组?
【发布时间】:2026-02-22 17:25:01
【问题描述】:

我正在编写一个程序,但我发现难以更新一个 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]

pontoPnovoPdeslocamento 是 1D numpy 数组(长度为 3),而 pontos 是 2D numpy 数组(大小 8 x 3)。

novoP = pontoP + deslocamento 行正在工作:数组正在按元素求和。但是,pontos[i] = novoP 无法更新二维数组 pontos。 我能做些什么?期望的结果是将 pontos 的第 i 个数组替换为 novoP 的内容。

【问题讨论】:

  • 什么是pontos.dtype
  • @hpaulj。一些整数,美元到甜甜圈
  • 不要尝试将浮点值放入 int dtype 数组中。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python arrays numpy vector linear-algebra


【解决方案1】:

感谢@hpauli,我发现问题出在 numpy 数组的类型上。这是一个int,当我尝试在其中放入一个浮点数时,浮点数被舍入了。

【讨论】: