cython相关内容

Python 列表到 Cython

我想知道如何使用 Cython 将普通的 python 列表转换为 C 列表,处理它并返回一个 python 列表.喜欢: Python 脚本: import mymodulea = [1,2,3,4,5,6]len = len(a)打印(mymodule.process(a,len)) Cython 脚本(mymodule.pyd): cpdef process(a, int len ..
发布时间:2021-11-18 04:56:02 Python

将 Cython 中的 numpy 数组传递给需要动态分配数组的 C 函数

我有一些具有以下声明的 C 代码: int myfunc(int m, int n, const double **a, double **b, double *c); 所以a是一个常量二维数组,b是一个二维数组,而c是一个一维数组,都是动态分配的.b 和 c 在传递给 myfunc 之前不需要什么特别的东西,应该理解为输出信息.就这个问题而言,我不允许更改 myfunc 的声明. 问题 ..
发布时间:2021-11-18 03:32:26 Python

将 C++11 数组与 Cython 接口

我习惯于构建 C++ 程序并在 Cython 中获取它,但在这里我试图获取 C++ 11 array 并且它绝对不起作用. 这是我的 .pxd : cdef extern from ""命名空间“std" nogil :cdef cppclass 数组[T, size_t]:ctypedef T value_typecppclass迭代器:夯;操作员*()迭代运算符++()迭代器运算符-- ..
发布时间:2021-11-18 03:13:41 C/C++开发

检查 Cython 中的数组中是否存在值

我想知道如何检查数组中是否存在值或对象,例如在 python 中: a = [1,2,3,4,5]乙 = 4如果 b 在 a:打印(“真的!")别的:打印(“假") 我想知道cython中是否已经存在类似的东西.我有一个指针结构对象数组;我想知道该对象是否存在于该数组中. 喜欢 cdef 节点 *array数组 = malloc( 5 * cython.sizeof(N ..
发布时间:2021-11-18 02:50:23 其他开发

为什么 numpy.zeros 占用的空间很小

我想知道为什么 numpy.zeros 占用这么小的空间? x = numpy.zeros(200000000) 这不占用内存, x = numpy.repeat(0,200000000) 占用大约 1.5GB.numpy.zeros 是否创建了一个空指针数组?如果是这样,在 cython 中更改指针后,有没有办法将指针设置回数组中的空?如果我使用: x = numpy.zeros(20 ..
发布时间:2021-11-18 01:56:10 Python

强制 NumPy ndarray 在 Cython 中取得其内存的所有权

按照 这个回答“我可以强制一个 numpy ndarray 获得其内存的所有权吗?"我尝试使用Python C API 函数 PyArray_ENABLEFLAGS 通过 Cython 的 NumPy 包装器,发现它没有暴露. 以下尝试手动公开它(这只是重现失败的最小示例) from libc.stdlib cimport malloc将 numpy 导入为 npcimport numpy ..
发布时间:2021-11-18 01:30:40 Python

将指向无符号字符数组的指针转换为 Numpy 数组

我正在做一些 Cython 包装,结果发现我需要将指向无符号字符数组的指针转换为 numpy 数组.我尝试过的方法都没有奏效.此外,如果可能的话,我更愿意在不实际复制数据的情况下执行此操作. 这是我一直在搞乱的有问题的函数. def getImage(self):cdef int size = self.c_cam.getResolution()[0]*self.c_cam.getReso ..
发布时间:2021-09-28 19:58:56 Python

有没有办法包装一个像关键字一样命名的结构(例如打印)?

我有一些 C 源代码,想将它封装在 Cython 中.现在,问题是,有一个名为 print 的结构,将其外部化会引发语法错误. cdef extern from "foo.h":结构打印:# ... 当属性或函数或类似的东西像关键字一样被调用时,也会出现同样的问题. cdef extern from "foo.h":结构 foo:平版印刷打印(字符*,整数) 有没有办法解决这个问题,无需修 ..
发布时间:2021-09-28 19:58:30 其他开发

无法获得窗口,中止.运行从 cython 和 cl 编译的可执行文件时出现 Kivy 错误

我目前正在通过尝试 Pong Game 练习来学习 Kivy 1.8.0(在 Windows 7 上,Python 3.3.3).写完所有代码后,我想测试一下将代码编译成.exe.但是由于 PyInstaller 仅适用于 Python2.X 而不适用于 Python3.X,我已经搜索了其他解决方案.我查看了互联网并最终尝试使用 Cython 和 cl(Visual Studio 10.0)编译我 ..
发布时间:2021-06-26 20:39:46 其他开发

错误:"PyThreadState" {aka"struct _ts"}没有名为"exc_type"的成员;您的意思是"curexc_type"吗?构建Cython扩展程序时

我在python 3.8上遇到以下错误,而在Python 3.6上却没有得到该错误.如何使它在Python 3.8中工作?为了重现该错误,请按照以下步骤操作: https://github.com/davidstutz/mesh-fusion/issues/7 [3645:3637 0:2090] 11:04:08 1月12日星期二[mona @ goku:pts/0 +1]〜/mesh-fu ..
发布时间:2021-05-29 22:31:58 服务器开发

当我编译python代码时,我得到:RecursionError:调用Python对象时超出了最大递归深度

edit:使用cython编译的pyqt5尝试了等效的代码.它可以顺畅地工作,所以这似乎是pyside2错误. 最新版本的cython.当我使用python运行它时,我的应用程序运行良好,但是当我将其制作成模块并从简单的启动器脚本导入该模块时,它似乎看不到来自互联网的任何数据,并且还为我提供了这些信息:RecursionError:maximum调用Python对象时超出了递归深度. ..
发布时间:2021-04-28 18:36:47 Python

cython.parallel无法看到速度差异

我尝试使用cython.parallel prange.我只能看到使用了50%的两个内核.我如何利用所有核心.即将循环发送到内核,同时共享阵列,卷和mc_vol? 编辑:我还编辑了纯顺序的for循环,比cython.parallel prange版本快约30秒.他们两个都只使用一个内核.有没有办法使这个并行化. cimport cython从cython.parallel导入prange ..
发布时间:2021-04-28 18:36:44 Python

在两个python进程或python进程的不同内存中安全写入cython c包装器中的变量

我正在创建一个基于c库的包装程序,该包装程序可以接收一些财务数据,并且希望将其收集为python数据类型(具有字段名列表的字典和具有财务数据字段的列表列表). 在c级别上,有一些函数开始“侦听"某些端口,并且当出现任何事件时,将调用某些用户定义的函数.此功能用cython编写.这种功能的简化示例在这里: cdef void default_listener(const event_dat ..
发布时间:2021-04-28 18:36:33 其他开发

当dict的void *参数传递函数时,Cython引发错误

我有一个带有 void * 参数的函数,我想将其存储在字典中. 我要做的是: %% cythoncdef void foo(void * bar):经过cdef dict foobar = {'foo':foo} 但是此代码会引发错误:无法将'void(void *)'转换为Python对象有什么方法可以解决此问题? 解决方案 最简单的解决方案是创建一个可以包装此函数的 cd ..
发布时间:2021-04-28 18:36:30 Python