首页 > 解决方案 > 将numpy数组的一部分除以一个常数

问题描述

当我将 numpy 数组的一部分除以常数时,我无法理解会发生什么。如果我跑

import numpy as np

a = np.array([1,2,3])
a[:2] = a[:2]/2
print(a)

我明白了

[0 1 3]

为什么不a等于array([0.5, 1.0, 3]),我如何a才能等于?

标签: pythonarraysnumpy

解决方案


正如编写此示例时的评论所建议的那样。但是,它是写的,所以它是这样的:

通过创建数组并仅传递ints 数组是类型dtype('int64')(从 first 开始print)。您可以将其显式设置float为如第二个示例所示,这将提供您的预期输出。


import numpy as np

a = np.array([1,2,3])
a[:2] = a[:2]/2
print(a)

a.dtype


b = np.array([1,2,3], dtype=np.float16)
b[:2] = b[:2]/2
print(b)

b.dtype


推荐阅读