草庐IT

cython_bbox

全部标签

python - Cython 用户的 Numpy 类型

当我在Cython代码中使用它们时,我不太明白numpy.{typename}、numpy.npy_{typename}和numpy.{typename}_t之间有什么区别?即这些类型有什么区别:#test.pyxcimportnumpyasnpimportnumpyasnpnp.float32np.npy_float32np.float32_t据我所知:第一种类型是动态的,即Cython将生成一些代码以在运行时检测该类型的大小。另外两种类型是静态的,即使用它的代码将使用每种类型的预定义大小进行编译。请指正。附加链接:https://docs.scipy.org/doc/numpy/r

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

我有一些具有以下声明的C代码:intmyfunc(intm,intn,constdouble**a,double**b,double*c);所以a是常量二维数组,b是二维数组,c是一维数组,都是动态分配的。b和c在传递给myfunc之前不需要具体是什么,应该理解为输出信息。出于这个问题的目的,我不允许更改myfunc的声明。问题1:如何将给定的numpy数组a_np转换为具有此C函数所需格式的数组a,因此我可以用a在Cython中调用这个C函数吗?问题2:b和c的声明是否正确,或者它们是否需要采用其他格式才能用于C函数将它们理解为二维和一维数组(分别)?我的尝试:我的文件.pxdcde

python /赛通 : Using SciPy with Cython

Cython教程展示了一个很好的示例,说明如何将Numpy与Cython结合使用。但是,我有使用scipy.stats包的代码,在尝试编译代码时,出现如下错误:dvi.pyx:7:8:'scipy.stats.pxd'notfound我担心Cython(?)不支持scipy。有人可以评论在Cython中使用scipy或指出一些资源/教程的方向吗?谢谢! 最佳答案 所以我在CythonGoogleGroup(https://groups.google.com/forum/?fromgroups#!searchin/cython-use

python - matplotlib.pyplot.axes.bbox 的定义

我不明白axes.bbox的定义。例如:>>>importmatplotlib.pyplotasplt>>>f,ax=plt.subplots()>>>ax.bboxTransformedBbox(Bbox('array([[0.125,0.1],\n[0.9,0.9]])'),BboxTransformTo(TransformedBbox(Bbox('array([[0.,0.],\n[8.,6.]])'),Affine2D(array([[80.,0.,0.],[0.,80.,0.],[0.,0.,1.]])))))这些值是什么意思?我会假设4个数字就足以定义一个矩形。显然这里存储

python - Cython 正确性

Cython生成的代码是否总是与生成它的Python代码一样正确?它可能会帮助其他读者解决Cython静态类型声明和其他Cython功能(如果有的话)的使用问题,尽管我只对通过将Python模块重命名为*.pyx来创建Cython文件的情况感兴趣。我只关心Cython涵盖的Python子集。 最佳答案 一般来说,是的。当然还有bugs(虽然很多都围绕着扩展支持的Python子集,但实际上导致生成的C代码不正确的错误相对较少),并且有一些必要的caveats(尽管看起来该短列表中只有一项偏离了Python语义)。当您在纯Python模

python - Cython 说缓冲区类型只允许作为函数局部变量,即使对于 ndarray.copy()

我是Cython的新手,遇到了这段代码:importnumpyasnpcimportnumpyasnptestarray=np.arange(5)cdefnp.ndarray[np.int_t,ndim=1]testarray1=testarray.copy()cdefnp.ndarray[np.float_t,ndim=1]testarray2=testarray.astype(np.float)在编译期间,它说Buffertypesonlyallowedasfunctionlocalvariables。但是,我使用的是.copy()或.astype(),它返回的不是内存View,而

python - 导入错误 : No module named 'Cython'

这个问题在这里已经有了答案:DealingwithmultiplePythonversionsandPIP?(27个答案)关闭12个月前。我正在尝试fromCython.Buildimportcythonize并收到消息ImportError:Nomodulenamed'Cython',但我使用命令安装了Cythonpip安装Cython。怎么了?python3.5赛通0.25.2Windows8

python - 在matplotlib中获取数据坐标中的bbox

我在显示坐标中有matplotlib.patches.Rectangle对象(条形图的条形)的bbox,如下所示:Bbox(array([[0.,0.],[1.,1.]])但我不希望显示坐标而是数据坐标。我很确定这需要转换。这样做的方法是什么? 最佳答案 我不确定您是如何在显示坐标中获得Bbox的。用户与之交互的几乎所有内容都在数据坐标中(对我来说那些看起来像轴或数据坐标,而不是显示像素)。以下应充分解释适用于Bbox的转换:frommatplotlibimportpyplotaspltbars=plt.bar([1,2,3],[3

python - 有条件的 `ctypedef` 与 Cython

我需要在我正在编写的一些包装代码中访问stdint.h中的uint64_ttypedef,但我不知道如何完成它。问题是,据我从文档中可以看出,我的ctypedef必须采用以下形式:ctypedefunsignedlonguint64_t或ctypedefunsignedlonglonguint64_t取决于bits/wordsize.h中的WORDSIZE是64还是32。我一直没能找到如何访问这个预处理器定义来自Cython,如果可以的话,Cython似乎不喜欢if语句中的ctypedef语句,当我尝试将if语句放入cdefblock,它似乎将它与声明混淆了。有任何想法吗?希望我只是在

python - 获取 Cython 指针的值

我正在编写一个构造malloc的unsignedchar*数组的函数,然后重新调整指针。在纯Cython或C中,这很容易。您所要做的就是为函数设置返回类型,并返回指向数组的指针。完毕。但是,我已经到了需要将指向在Cython中创建的数组的指针返回给Python的地步。我知道指针只是内存地址。有什么方法可以将Cython指针作为Python对象(例如int或hex,因为内存地址本质上是一个数字)返回到Python,这样我就可以基本上在Python中管理指针了?我试过像这样返回指针的值:cdefunsignedchararray[8]defreturn_pointer():return&a