无法将数组保存到列
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]])
我有以下代码:
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]])