草庐IT

lda_gibbs_cython

全部标签

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 - Cython 正确性

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

python - 将 scikit-learn TfIdf 与 gensim LDA 结合使用

我在scikit中使用了各种版本的TFIDF来学习建模一些文本数据。vectorizer=TfidfVectorizer(min_df=1,stop_words='english')结果数据X的格式如下:'withxyzstoredelementsinCompressedSparseRowformat>我想尝试使用LDA来降低稀疏矩阵的维数。有没有一种简单的方法可以将NumPy稀疏矩阵X馈送到gensimLDA模型中?lda=models.ldamodel.LdaModel(corpus=corpus,id2word=dictionary,num_topics=100)我可以忽略sci

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 - 使用 Python 可视化 LDA 模型

我有一个LDA模型,其中包含10K文档中的10个最常见的主题。现在它只是每个主题对应概率分布的单词概览。我想知道是否有可用的python来可视化这些主题? 最佳答案 pyLDAvis看起来相当不错。还有Termite由斯坦福大学的JasonChuang开发。 关于python-使用Python可视化LDA模型,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/30397550/

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