gpt4 book ai didi

python - Cython 用户的 Numpy 类型

转载 作者:太空狗 更新时间:2023-10-29 21:39:19 27 4
gpt4 key购买 nike

当我在 Cython 代码中使用它们时,我不太明白 numpy.{typename}、numpy.npy_{typename} 和 numpy.{typename}_t 之间有什么区别?

即这些类型有什么区别:

# test.pyx
cimport numpy as np
import numpy as np

np.float32
np.npy_float32
np.float32_t

据我所知:第一种类型是动态的,即 Cython 将生成一些代码以在运行时检测该类型的大小。另外两种类型是静态的,即使用它的代码将使用每种类型的预定义大小进行编译。请指正。

附加链接:https://docs.scipy.org/doc/numpy/reference/c-api.dtype.html#c-type-names

最佳答案

np.float32 是 NumPy 的 TypeDescriptor,它是一个 Python 对象,可以查询并传递给 NumPy 以像在 Python 中一样构造数组。

np.npy_float32 是一个 C 类型,可以在任何需要 C 类型的地方使用,例如

cdef np.npy_float32 x = 1.902
cdef np.ndarray[np.npy_float32, ndim=2] A = np.zeros((3, 4), dtype=np.float32)

np.float32_t 只是一个 typedef np.npy_float32 可以用作速记。

关于python - Cython 用户的 Numpy 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34597093/

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