我想使用一种将类型化内存视图作为其 arguments 之一的方法编写扩展类型。 MWE: main.pyx setup.py 当我运行代码(真正的代码)时,一切似乎都运行良好,但我收到以下编译警告: 我不知道这是什么意思,但它只发生在扩展类型有一个将类型化内存视图作为参数的方法时。 我应该对此做 ...
我想使用一种将类型化内存视图作为其 arguments 之一的方法编写扩展类型。 MWE: main.pyx setup.py 当我运行代码(真正的代码)时,一切似乎都运行良好,但我收到以下编译警告: 我不知道这是什么意思,但它只发生在扩展类型有一个将类型化内存视图作为参数的方法时。 我应该对此做 ...
我在 cython 中创建了一个类型化的内存视图,并想将它乘以一个标量: Function foo()执行此任务,但不是很方便/可读。 但是,function bar()中的A *= pi行无法编译: Invalid operand types for '*' (double_t[:, :]; d ...
我想检查 memory 视图是否被初始化为 None。 我有一个像这样的 function: 编译时出现此错误: 将 None 分配给内存视图是否存在问题? 如果不是这种情况,我该怎么做才能检测 NULL 值? 谢谢! ...
我不太明白如何在大型/更长的 nogil 部分中使用 memoryviews 完成引用计数。 让我们假设基本上我所有的代码都是 nogil,除了在深处创建一个 numpy-array-to-memoryview 。 内存视图被返回并向上使用。 一个相当简单的例子是 我假设当 someFun() 返回 ...
是否可以使用ac fwrite函数将numpy数组写入磁盘? 从Cython内存视图文档中,我了解到“它们可以处理C数组”,但我没有看到此类示例。 这是我正在尝试的: 但是我收到以下编译错误: 这可能吗? ...
我想更多地了解 Cython 的typed-memoryviews和内存布局indirect_contiguous 。 根据文档,当“指针列表是连续的”时使用indirect_contiguous 。 还有一个示例用法: 因此,如果我错了,请纠正我,但我假设“指向连续整数列表的连续指针列表”意味着类 ...
目标:使用Cython从2D C ++ char数组中获取Memoryview。 一点背景: 我有一个本机C ++库,它生成一些数据并通过char**将它返回给Cython世界。 该数组在库中初始化并运行,如下所示: struct Result_buffer{ char* ...
问题 在cython中定义不同的对象时,内存视图将返回相同的地址。 但是,数组本身在被索引时将被修改。 背景。 我有用cython编写的基类和派生类。 我注意到,当我对类应用多处理时,底层缓冲区在不同的进程中发生了变化,这不是故意的。 在酸洗过程中,我编写了一个简单的__ ...
此Cython函数返回numpy数组中位于一定范围内的元素中的随机元素: 这样很好。 但是,此功能对于我的代码的性能非常关键。 类型化的内存视图显然比numpy数组快得多,但是不能以与上述相同的方式对其进行过滤。 我该如何使用键入的memoryviews编写一个与上述功能相同的 ...
在函数的cdef签名中: 我应该放入<????>吗? 如果我正确理解文档 ,则必须指定异常类型,才能使异常向上传播到Python堆栈。 我尝试了诸如[b'\\x00']和空Cython数组的方法,但没有任何效果。 ...
我有一个函数(来自外部Python库),它返回一个我想在Cython中处理的memoryview对象。 有没有办法将其转换为字节的类型化内存视图(无副本)以提高效率? 那我该怎么办? 这不起作用: ...
我在Cython中使用了很多3D memoryviews,例如 我经常要循环的所有元素a 。 我可以使用像 如果我不在乎索引i , j和k ,则进行扁平循环会更有效,例如 在这里,我需要知道数组中元素的数量( size )。 这由shape属性中元素的乘积给出,即si ...
我有一个 numpy 布尔数组: 如果我尝试用它初始化 Cython MemoryView,如下所示: 我收到此错误: 如果我这样做,它工作正常: 如何使用 Cython MemoryViews 存储布尔 numpy 数组? ...
我正在尝试通过使用cython功能来提高python代码的速度。 我的python代码由py_child和py_parent类以及py_backup函数组成,如下所示: 这与cython的实现相同,通过使用memoryviews作为一些变量: 现在我想评估函数cy_backup ...
我是一个初学者,我相信这个问题太简单了。 我试图在cython中测试内存视图,以更好地了解它们。在我的代码中,随着cy类元素的move我传递了每个内存视图元素(例如[1,2] )。 当我打印结果时。 我得到这个: 我需要cy类打印出一个列表。 我该如何解决? 使用此代码时 ...
我已经在python中启动了一个项目,该项目主要由循环组成。 几天前,我读到了有关cython的信息,它可以帮助您通过静态键入来获得更快的代码。 我开发了这两个函数来检查性能(一个在python中,另一个在cython中): 我毕竟使用下面的代码来测试性能: 但是我没有发现任 ...
我开始研究到Fortran库(BLAS / LAPACK)的SciPy接口,可以在这里看到: 使用SciPy接口和Cython直接调用BLAS / LAPACK,并提出了一个解决方案,但不得不求助于使用numpy.zeros直接调用Fortran代码会扼杀任何速度提升。 问题是Fortran代 ...
我编写了一个Cython程序,调用Intel MKL进行矩阵乘法,目的是使其并行。 它基于链接到BLAS的旧SO帖子,并使用了许多我从未见过的Cython方法,但是使它起作用了,并且比NumPy(也链接到MKL)要慢得多。 为了加快速度,我使用了典型的Memoryview格式(它使用ndar ...
我正在memoryviews上遵循此指南 。 但是,当我在Jupyter的“快速入门”部分中尝试代码时,出现了以下错误: 我什至不知道如何搜索此错误,因为它与语法有关,但是Cython.org建议使用此语法。 我认为这可能是因为我在错误的地方(而不是在Jupyter平台上)使用 ...
我有一个python memoryview指向一个bytes对象,我想在cython中执行一些处理。 我的问题是: 因为bytes对象不可写,所以cython不允许从中构造一个类型化的(cython)内存视图 我也不能使用指针,因为我无法获得指向memoryview st ...