【python cookbook 2 数字 日期 时间(2)】教程文章相关的互联网学习教程文章

C与Python中特征向量例程的不同结果【代码】

所以我注意到我得到了所有1的44矩阵的特征分解的不同答案. 在使用numpy.linalg.eig的Python中:matrix = numpy.ones((M,M), dtype=float); values, vectors = numpy.linalg.eig(matrix);Python结果:V1: [-0.866025 +0.288675 +0.288675 +0.288675] V2: [+0.500000 +0.500000 +0.500000 +0.500000] V3: [+0.391955 +0.597433 -0.494694 -0.494694] V4: [+0.866025 -0.288675 -0.288675 -0.288675]在C中使用LAPACK DSYEV:#define N...

python – Cython将字符串传递给C作为字节【代码】

我需要在python中构建一个字符串并将其传递给包装的C lib. C lib定义了这个函数:unsigned char load(char const *FileName)在.pyx文件中:def test():PATH = '/usr/lib/libnx.so'PATH = <char*>PATHload(PATH)但我得到:TypeError:期望的字节,str找到 我已经尝试编码python字符串,但得到相同的错误.解决方法:在Python中,str对象不是C中的字节数组.为此,您必须对字符串进行编码.默认值为UTF-8编码,向后兼容ASCII. 以下是传递字节数...

在C中模拟python的“in”【代码】

我设法弄清楚了如python中的确切语法(检查容器中是否存在值),因此您只需检查值是否在任何支持begin()/ end()方法的容器中. 这是我的实现:#include <algorithm> #include <iostream> #include <vector>template<class T> struct specified {specified(T const& value) : value_(value) {}T value_;template<class Container>bool operator * (Container const& cont) {return (std::find(cont.begin(), cont.end(), value_) != con...

python – C – argsort低效率的矢量版本实现与numpy中的低效率相比【代码】

这是我做的比较. np.argsort定时在float32上,ndarray由1,000,000个元素组成.In [1]: import numpy as npIn [2]: a = np.random.randn(1000000)In [3]: a = a.astype(np.float32)In [4]: %timeit np.argsort(a) 86.1 ms ± 1.59 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)这里有一个C程序执行相同的过程,但是在引用this answer的向量上.#include <iostream> #include <vector> #include <cstddef> #include <algorith...

如何在Python中为包装的C函数传递指向数组的指针【代码】

我是C / Python混合语言编程的新手,对Python / C API不太了解.我刚开始使用Boost.Python为Python包装一个C库.我被困在包装一个函数,该函数将指向数组的指针作为参数.以下(第二个ctor)是它在C中的原型.class AAF{AAF(AAF_TYPE t);AAF(double v0, const double * t1, const unsigned * t2, unsigned T);~AAF(); }我是通过在boost :: python中这样包装它来做的吗?class_<AAF>("AAF", init<AAF_TYPE>()).def(init<double, const doubl...

c# – 将多个参数从IronPython传递给.NET方法【代码】

我有一个.NET(C#)类:public class MyHelper {public object exec( string script, params object[] arguments ) {// execute script with passed arguments in some external enviroment} }我在我的代码中使用IronPython运行时来运行python脚本,在某些情况下应该调用“exec”方法.我想以舒适的方式调用“exec”方法.就像是:helper.exec( "someExternalFunction( {0}, {1}, {3} )", var01, var02, var03 )但我不知道如何在C#中声明...

从C API在Python模块中定义全局【代码】

我正在使用C API为Python开发一个模块.如何创建一个从Python中看作全局的变量? 例如,如果我的模块是模块,我想创建一个执行此工作的变量g:import module print module.g特别地,g是整数. Alex Martelli的解决方案PyObject *m = Py_InitModule("mymodule", mymoduleMethods); PyObject *v = PyLong_FromLong((long) 23);PyObject_SetAttrString(m, "g", v); Py_DECREF(v);解决方法:您可以在模块的初始化例程中使用PyObject_SetAttrS...

Python和C耦合【代码】

我尝试使用ctypes.CDLL类(Linux)在Python中加载C共享库.so.这是link告诉我做了什么.正如我在文档中看到的那样,CDLL类假定函数返回int类型.我在这里有一个疑问,如果我需要从C中的函数返回int类型以外的类型变量?我们可以在多大程度上使用Python中的C函数,这意味着使用C共享库和函数的限制/限制是什么 提前致谢解决方法:默认情况下,它假定为int,但您可以将restype设置为任何supported types以覆盖它.例如,来自文档:strchr.restype ...

如何在python程序中嵌入C代码?【代码】

我想编写一个使用多线程原始套接字的程序来扫描python中的端口我有一个C代码注入原始套接字.我想执行ACK扫描,因此需要一个原始套接字. 所以请帮助我. 谢谢解决方法:请查看Cython.它使包装C代码变得非常容易. 这是从documentation on calling external C functions改编的:cdef extern from "math.h":double sin(double)def pysin(x):return sin(x)然后,您可以像编译普通的Python模块一样从已编译的模块调用pysin.

Python和C交互 – 回调函数【代码】

我正在尝试为我的一个研究项目制作Mac OS的关键记录器.我有一个C代码,它将抓取击键并将它们写入文本文件. (以下代码我已经拿出一些不重要的东西) 我现在需要做的就像PyHook,而不是将数据写入文本文件,将Python回调函数传递给C代码并使其将密钥输入传递回Python,因此我可以使用Python进行必要的分析. 我一直在寻找如何做到这一点,但说实话,我不知道如何处理这个,因为我不习惯C编程或Python扩展.任何帮助将不胜感激.#include <Carbon...

c – 在MacOS上编译Pythonika【代码】

我在Snow Leopard上编译Pythonika并且我得到的错误表明我错过了一些标准旗帜,任何想法缺少什么?另一个post建议我需要-lrt标志,但这在MacOS上不可用cc -I/Applications/Mathematica.app/SystemFiles/Links/MathLink/DeveloperKit/CompilerAdditions -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/ Pythonika.o Pythonikatm.o -L/Applications/Mathematica.app/SystemFiles/Links/MathLink/DeveloperKit/...

Python C APi Deep Copy

如何使用C API对python对象进行深层复制?我知道我可以使用copy.deepcopy,但如果可以,我更愿意使用C API.解决方法:copy.deepcopy()的功能是completely written in Python.如果有一个C调用来实现相同的功能,我认为他们不会这样做,所以我猜你必须调用copy.deepcopy().

gdb python编程:如何编写将断点设置到C类的每个方法的代码?【代码】

我希望能够在gdb中为C类的每个方法设置断点.我认为最简单的方法可能是python,因为现在python可以完全访问gdb.我知道很少的python,并且在它之上使用gdb,它甚至更难.我想知道是否有人知道如何编写一个类python代码,将断点设置为gdb中命名类的每个方法.解决方法:假设你使用调试符号编译,你甚至不需要python:rbreak source.cpp:.

shiboken绑定C++供python使用

C++类函数封装给python调用,大致分为三个部分,第一部分是把我们的C++类函数等封装成一个dll,即动态库。第二部分是生成一个绑定代码,就是用shiboken2根据我们需要封装暴露的文件,生成pythonC++代码。然后第三部分,就是根据第一和第二部分生成的库和代码,进一步封装成py库。然后python文件直接可以调用该库。具体代码如下,源码用的是python的官方源码。主要讲解每个部分的使用。 源码: ------------------icecream.cpp------...

从C中查找python函数参数【代码】

我从C调用python函数.我想知道是否可以确定参数的数量和这些参数的名称.我已经阅读了链接How to find the number of parameters to a Python function from C?,但我真的不明白. 我有这个C函数从pyFunction.py调用函数’add’. ‘add’接受两个参数并返回总和.static float CallPythonFunc( float *parameters ) {PyObject *pName, *pModule, *pDict, *pFunc, *pValue, *pArgs;float ret;// Initialize the python interpreterPy_In...