无法将数组保存到列

Trouble saving array to columns

我有以下代码:

dvbydt = np.full([3,N],0)
dvbydt[:,0] = np.array([-1.47813483e-03, -2.23682946e-03, -1.06122312e-05])

我的印象是,这会将整个第一列保存为右侧具有三个值的数组,但它仍然 returns 是一个全为 0 的数组。我究竟做错了什么?没有出现错误,它们具有相同的形状,但似乎没有任何内容保存到 dvbydt 数组中。非常感谢任何帮助

如果检查条目的类型,它们是整数:

type(dvbydt[0][0])
# numpy.int32

所以它确实有效,它只是将它们近似为最接近的整数 0。

定义数组时,使用0.0而不是0:

N = 3
dvbydt = np.full([3,N],0.0)
dvbydt[:,0] = np.array([-1.47813483e-03, -2.23682946e-03, -1.06122312e-05])

dvbydt
# array([[-1.47813483e-03,  0.00000000e+00,  0.00000000e+00],
#       [-2.23682946e-03,  0.00000000e+00,  0.00000000e+00],
#       [-1.06122312e-05,  0.00000000e+00,  0.00000000e+00]])

或者,在数组参数中指定 dtype

N = 3
dvbydt = np.full([3,N],0, dtype=float)
dvbydt[:,0] = np.array([-1.47813483e-03, -2.23682946e-03, -1.06122312e-05])

dvbydt
# array([[-1.47813483e-03,  0.00000000e+00,  0.00000000e+00],
#       [-2.23682946e-03,  0.00000000e+00,  0.00000000e+00],
#       [-1.06122312e-05,  0.00000000e+00,  0.00000000e+00]])