Tag: python

实现最小化方法

我在2个变量x1,x2有一个函数 f = 3*x1^2 + 4*x2^2 + 5*x1 + 6*x2 + 10 考虑x是行向量,使得x = [x5,x6] ,其中x5,x6是向量的分量。 如果符号混淆,让我们考虑x = [x1,x1]但x1,x2可以是任意组件。 对于y ,同样的论点也适用。 然后我想找到a from (x + ay)这样它会使f最小化。 a是实常数, x和y是向量。 这在上面解释了。 如果这没有意义,那么让我们将x,y视为具有2个位置的1维数组。 因此,x(1),x(2),y(1),y(2)是它们的组成部分。 然后我想将数组y乘以符号变量a 。 例如, x=[4,5] , y=[-2,3]则, (x + ay) = (4,5) + a(-2,3) = (4-2a,5+3a) 。 a是这里未知的符号变量。 在f1替换(更清楚的是, f x1 = 4-2a的定义中的第一个参数,第二个参数x2=5+3a ) f1 […]

将Quartz 2d python演示移植到纯Core Graphics C

让我首先注意到我完全不知道我在做什么用Objective-c和mac开发(虽然我对c很好)。 我用豹子的Quartz-2d绑定在豹子上制作了一个非常简单的图形工具: http://developer.apple.com/graphicsimaging/pythonandquartz.html 基本上输入一个文本文件并写一个漂亮的png文件(它是一个命令行实用程序)。 我很高兴作为一只泥泞的猪,直到我将这个实用程序移到我们的雪豹服务器上,并发现CoreGraphics和雪豹上的32位python存在各种各样的问题。 其中一些问题是可以解决的,有些则不是。 所以,我试图将这个简单的实用程序脚本移植到objective-c(实际上是CI假设)并遇到一些问题。 有没有其他人知道是否有一个很好的例子几乎完全像python和quartz中给出的那个,但都是在本机代码中? 我的主要问题是将图形上下文写入文件 myBitmapContext = MyCreateBitmapContext (400, 300); CGContextSetRGBFillColor (myBitmapContext, 1, 0, 0, 1); CGContextFillRect (myBitmapContext, CGRectMake (0, 0, 200, 100 )); CGContextSetRGBFillColor (myBitmapContext, 0, 0, 1, .5); CGContextFillRect (myBitmapContext, CGRectMake (0, 0, 100, 200 )); CGImageRef myImage = CGBitmapContextCreateImage (myBitmapContext);// 5 CGContextDrawImage(myBitmapContext, myBoundingBox, myImage);// 6 char *bitmapData = […]

通过C或Python移动平均3个元素

我想计算3个元素的移动平均值。 例如,我有25个销售数据元素。 我需要计算从平均这25个数据元素中获取的移动平均值。 当一个真实数组作为数据给出时,我想编写一个程序来确定3个元素的移动平均值并创建一个数组。 数组中的元素数量比给定的序列短2个元素。 例如,如果给我: [7.0, 9.0, 5.0, 1.0, 3.0] 我想得到: [7.0, 5.0, 3.0]

如何通过ctypes对python中包含对它的定义的引用进行建模?

尝试将struct包含在它的定义中,如下所示 foo.c的 typedef struct Foo { struct Foo *foo; } Foo; 例如,如何建模 foo.py class Foo(Structure): _fields_ = [(‘foo’, pointer(Foo))] 当然python没有解释,我可以使用c_void_p而不是指针(Foo),并将其值转换为如下 F = clib.get_foo() cast(F.foo, pointer(Foo)) #although i’m not sure if it would work 但是,有没有办法在python类中对该结构进行建模?

将Scipy嵌入到C中

这是一个非常基本的问题,但它让我难过。 我试图将一些scipy例程嵌入到c程序中。 但是,我无法成功完成导入任何scipy模块的初始步骤。 我可以导入顶级的scipy,而不会获得null返回值,所以我很确定安装不是问题… PyObject *pckg_name, *pckg; pckg_name = PyString_FromString(“scipy”); pckg = PyImport_Import(pckg_name); if (!pckg) { printf(“Error importing python module %s.\n”); return; } ……但我无法达到任何较低的水平。 我已尝试使用PyImport_Import和PyImport_ImportModule进行各种组合,例如将“scipy.stats”导入为步骤1,或者在导入scipy后导入stats作为步骤2,但没有任何工作。 我可以导入和使用“随机”模块中的函数,所以我认为我的基础Python安装没有问题。 我知道我在这里遗漏了一些明显的东西,但我无法弄清楚它是什么。

编译python hmmlearn包的C代码时出错

我在安装hmmlearn软件包时遇到了一些麻烦(在虚拟环境中); 它似乎与底层的C代码有关。 使用pip安装包很好,但是当我尝试导入核心类时,我收到一个错误: In [1]: import hmmlearn In [2]: from hmmlearn import hmm ————————————————————————— ImportError Traceback (most recent call last) in () —-> 1 from hmmlearn import hmm /export/hdi3/home/krono/envs/sd/lib/python2.7/site-packages/hmmlearn/hmm.py in () 19 from sklearn.utils import check_random_state 20 —> 21 from .base import _BaseHMM 22 from .utils import iter_from_X_lengths, normalize 23 /export/hdi3/home/krono/envs/sd/lib/python2.7/site-packages/hmmlearn/base.py in () 11 from […]

带指针结构的SWIG函数

我使用SWIG来包装C共享库。 我有问题在python中使用struct指针调用C函数。 我的文件: ST_Param.h: typedef struct { unsigned int* device_Address; …. …. unsigned int lock; }ST_param_ST; unsigned char ST_Param_Initialize(ST_param_ST * ST_param, unsigned int device_Address); ST_Param.c ……… Rest of file…………. unsigned char ST_Param_Initialize(ST_param_ST * ST_param, unsigned int device_Address){ if(ST_param == NULL){ ………. rest of funtion ………………….. return 0; } 在ST_Param_Initialize中我确认指针存在,如果不相信 ST_Param.i : /* File : ST_Param.i […]

存储Minhash的结果

结果是固定数量的数组,比如python中的列表(所有长度相同)。 人们可以将它看作矩阵,所以在c中我会使用一个数组,其中每个单元格都指向另一个数组。 如何用Python做到这一点? 每个项目都是列表或其他内容的列表? 我想到了一本字典,但关键是微不足道的,1,2,……,M,所以我不确定这是否是这里的pythonic方式。 我对实施不感兴趣,我对我应该遵循哪种方法感兴趣,我应该选择哪种方式!

在Python与C中打印空字符(“\ x00”)

当我编写并运行语句时: print “\x00\x00\x00” 在Python中,它输出三个空格,后跟换行符。 但在C中,当我编写并运行语句时: char hex[] = “\x00\x00\x00”; printf(“%s\n”, hex); 它像我想的那样解释NULL字节:它没有做任何事情。 那么为什么在Python中将NULL字节视为空格?…

将整数列表解释为Python中的float

我试图将C代码段转换为python。 所述function的目的是从PLC获取4位,8位读数,并将它们解码为单个浮点数。 float conv_float_s7_pc(char * plc_real) { char tmp[4]; tmp[0] = * (plc_real + 3); tmp[1] = * (plc_real + 2); tmp[2] = * (plc_real + 1); tmp[3] = * (plc_real + 0); return (* (float *) tmp) ; } 是否有一些可以干净地执行此function的Python魔法? 虽然我试图转换上面的函数,但更普遍的问题是,你将如何在python中执行这样的内存“重新解释”? 编辑 这让我得到了我需要的东西: import struct def conv_to_float(plc): temp = struct.pack(“BBBB”, plc[0], plc[1], plc[2], plc[3]) […]