gpt4 book ai didi

python-2.7 - ValueError : Buffer dtype mismatch, 预期为 'float' 但得到 'double'

转载 作者:行者123 更新时间:2023-12-02 07:26:32 25 4
gpt4 key购买 nike

我编译了一个 Cython 脚本并运行它。运行它时,我从以下代码行收到错误:

cdef np.ndarray[float] vola = np.empty(n, dtype=float)

这是为什么呢?我想稍后用浮点值填充数组 vola,所以我想将其格式化为 float ,而不是 double 。

最佳答案

只需使用 cdef np.ndarray[double] vola = np.empty(n, dtype=float)

使用 cythonmagic 在 ipython 中的示例(参见示例 here):

%%cython
import numpy as np
cimport numpy as np
cpdef foo(n):
cdef np.ndarray[double] vola = np.empty(n, dtype=float)
return vola

foo(4) #output :
array([ 2.14079666e-314, 2.14079666e-314, 2.17357252e-314, 2.78136356e-309])

这是因为 numpy float 是 C double

编辑:对于更便携/可维护的代码,您可以使用 np.float64_t 代替 double,并指定 dtype=np.float64 在对 empty() 的调用中。

关于python-2.7 - ValueError : Buffer dtype mismatch, 预期为 'float' 但得到 'double',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com