gpt4 book ai didi

python - 如何正确地将 scipy.sparse CSR 矩阵传递给 cython 函数?

转载 作者:太空狗 更新时间:2023-10-30 00:40:30 25 4
gpt4 key购买 nike

我需要将 scipy.sparse CSR 矩阵传递给 cython 函数。如何指定类型,就像指定 numpy 数组一样?

最佳答案

下面是一个示例,说明如何使用属性 rowcoldata< 从 coo_matrix 快速访问数据。该示例的目的只是展示如何声明数据类型和创建缓冲区(还添加通常会给您带来相当大提升的编译器指令)...

#cython: boundscheck=False
#cython: wraparound=False
#cython: cdivision=True
#cython: nonecheck=False

import numpy as np
from scipy.sparse import coo_matrix
cimport numpy as np

ctypedef np.int32_t cINT32
ctypedef np.double_t cDOUBLE

def print_sparse(m):
cdef np.ndarray[cINT, ndim=1] row, col
cdef np.ndarray[cDOUBLE, ndim=1] data
cdef int i
if not isinstance(m, coo_matrix):
m = coo_matrix(m)
row = m.row.astype(np.int32)
col = m.col.astype(np.int32)
data = m.data.astype(np.float64)
for i in range(np.shape(data)[0]):
print row[i], col[i], data[i]

关于python - 如何正确地将 scipy.sparse CSR 矩阵传递给 cython 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295159/

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