相关疑难解决方法(0)

Cython:对于类型化的内存视图,我应该使用np.float_t而不是double

关于cython中的内存视图,使用NumPy类型键入视图是否有任何优势,例如,如果我正在处理numpy浮点数组,np.float_t而不是简单地做double

我应该cdef以同样的方式输入,例如

ctypedef np.float64_t np_float_t
...

@cython.profile(False)
@cython.wraparound(False)
@cython.boundscheck(False)
cdef np_float_t mean_1d(np_float_t [:] v) nogil:
    cdef unsigned int n = v.shape[0]
    cdef np_float_t n_sum = 0.

    cdef Py_ssize_t i
    for i in range(n):
        n_sum += v[i]

    return n_sum / n
Run Code Online (Sandbox Code Playgroud)

python numpy typing cython memoryview

9
推荐指数
1
解决办法
3220
查看次数

在 Cython 中将 C++ 向量转换为 numpy 数组而无需复制

有一个 C++ 函数返回浮点数向量。如何在不复制的情况下将此向量转换为 NumPy 数组?现在我这样做:

cdef np.ndarray arr = np.ascontiguousarray(cpp_vector, dtype=np.float)
return arr
Run Code Online (Sandbox Code Playgroud)

但这在大向量上工作非常慢(假设发生复制)。

c++ python cython numpy-ndarray

6
推荐指数
1
解决办法
1265
查看次数

标签 统计

cython ×2

python ×2

c++ ×1

memoryview ×1

numpy ×1

numpy-ndarray ×1

typing ×1