2024-10-02 22:36:08 发布
网友
我有以下代码:
dvbydt = np.full([3,N],0) dvbydt[:,0] = np.array([-1.47813483e-03, -2.23682946e-03, -1.06122312e-05])
我的印象是,这会将第一列的整个内容保存为右侧有三个值的数组,但它仍然返回一个包含所有0的数组。我做错了什么?没有出现错误,它们具有相同的形状,但似乎没有任何内容保存到dvbydt阵列中。非常感谢您的帮助
如果检查条目的类型,则它们是整数:
type(dvbydt[0][0]) # numpy.int32
所以它确实有效,它只是将它们近似为最接近的整数,即0
定义数组时,请使用0.0而不是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:
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]])
如果检查条目的类型,则它们是整数:
所以它确实有效,它只是将它们近似为最接近的整数,即0
定义数组时,请使用
0.0
而不是0
:或者,在数组参数中指定
dtype
:相关问题 更多 >
编程相关推荐