如何强制numpy标量*数组乘法得到float64结果?

2024-10-02 18:26:33 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我定义了一个dtypefloat64常量和一个dtypefloat32常量数组:

c = np.arccos(-1)
ones = np.array([1,1,1], dtype='float32')
print(c.dtype, ones.dtype)

float64 float32

如果将标量与整个数组相乘,则得到的结果为dtypefloat32

result_array = c*ones
print(result_array, result_array.dtype)

[3.1415927 3.1415927 3.1415927] float32

但是,如果将标量与第一个元素相乘,则得到的结果是dtypefloat64

result_scalar = c*ones[0]
print(result_scalar, result_scalar.dtype)

3.141592653589793 float64

如何以双精度执行乘法c*ones,以使生成的数组为数据类型float64?(当然,不需要将每个元素分别乘以常数。)

(我已经回顾了这个相关的问题/答案,其中有一些关于Numpy标量和数组操作产生的数据类型的好信息,但没有完全回答我的问题:Numpy casting float32 to float64


Tags: 元素npones数组resultarrayscalarprint