导航:首页 > 编程语言 > pythoncvector

pythoncvector

发布时间:2022-05-30 01:50:31

python 调用 C++的DLL,函数参数是数组怎么处理

给你一个例子看看,你就知道怎么做了

C++的接口

typedef struct
{
unsigned long DeviceType;
int Handle;
int NumberOfClients;
int SerialNumber;
int MaxAllowedClients;
}NeoDevice;
int _stdcall icsneoFindNeoDevices(unsigned long DeviceTypes, NeoDevice *pNeoDevices, int *pNumberOfDevices);


Python调用的代码:

class NeoDevice(Structure):
_fields_ = [("DeviceType",c_ulong),
("Handle",c_int),
("NumberOfClients",c_int),
("SerialNumber",c_int),
("MaxAllowedClients",c_int)]
class cNeoVICan(CCanBase):
def __init__(self):
neoVi = windll.icsneo40
self.icsneoFindNeoDevices = neoVi.icsneoFindNeoDevices
if __name__ == "__main__":
canBus = cNeoVICan()
print canBus.icsneoGetDLLVersion()
iNumberOfDevices = (NeoDevice * 10)()
num = c_int()
iResult = canBus.icsneoFindNeoDevices(c_ulong(65535), cast(iNumberOfDevices, POINT(NeoDevice)), byref(num))

㈡ python转化成c++或c

是特定的应用,别人无法看出来做什么的。虽然里面每个标准python用法都很简单。
python比c++容易的多,不管是编写还是阅读,转成c++毫无意义,除非为了效率的缘故。

感觉就是读文件,计算一些东西,然后收集结果再输出到其他文件中。

㈢ Python 中的 classmethod 和 staticmethod 有什么具体用途

今天刚看了流畅的python,里面有一章就讲到这两个的具体用例。

frommathimporthypot,atan2
fromarrayimportarray

classVector(object):
__slots__=('_x','_y')
typecode='d'

def__init__(self,x=0,y=0):
self._x=float(x)
self._y=float(y)

@property
defx(self):
returnself._x

@property
defy(self):
returnself._y

@classmethod
deffrombytes(cls,octets):
typecode=chr(octests[0])
memv=momoryview(octets[1:]).cast(typecode)
returncls(*memv)

def__hash__(self):
returnhash(self.x)^hash(self.y)

def__iter__(self):
return(iforiin(self.x,self.y))

def__repr__(self):
class_name=type(self).__name__
returnf'{class_name}({self.x},{self.y})'

def__str__(self):
returnstr(tuple(self))

defangle(self):
returnatan2(self.y,self.x)

def__format__(self,fmt_spec=''):
iffmt_spec.endswith('p'):
fmt_spec=fmt_spec[:-1]
coords=(abs(self),self.angel())
outer_fmt='<{}{}'
else:
coords=self
outer_fmt='({}{})'
components=(format(c,fmt_spec)forcinself)
returnouter_fmt.format(*components)

def__bytes__(self):
return(bytes([ord(self.typecode)])+
bytes(array(self.typecode,self)))

def__eq__(self,other):
returntuple(self)==tuple(self)

def__abs__(self):
'''abs(Vector(3,4))-->sqrt(vector.x,vector.y)=5'''
returnhypot(self.x,self.y)

def__bool__(self):
returnabs(self)!=0

def__add__(self,other):
x=self.x+other.x
y=self.y+other.y
returnVector(x,y)

def__mul__(self,scalar):
returnVector(self.x*scalar,self.y*scalar)

㈣ 如何用python安装woord2vector

安装
gensim有一些依赖,首先请先确保你安装了这些东西:
Python >= 2.6. Tested with versions 2.6, 2.7, 3.3, 3.4 and 3.5. Support for Python 2.5 was discontinued starting gensim 0.10.0; if you must use Python 2.5, install gensim 0.9.1.

NumPy >= 1.3. Tested with version 1.9.0, 1.7.1, 1.7.0, 1.6.2, 1.6.1rc2, 1.5.0rc1, 1.4.0, 1.3.0, 1.3.0rc2.

SciPy >= 0.7. Tested with version 0.14.0, 0.12.0, 0.11.0, 0.10.1, 0.9.0, 0.8.0, 0.8.0b1, 0.7.1, 0.7.0.

还有一点特别注意的是,保证你的系统有C的编译器,不然速度会很慢,其实你可以首先编译一下Google官方的C语言版的试试,然后在安装gensim,gensim的word2vector用了官方的代码
根据官网的安装指南,有两种方法可以选择:
使用easy_install 或者pip,注意这两者可能都需要sudo申请更高的权限
easy_install -U gensim
或者(这个相对于官网的,我修改过,实测我的没问题)
pip install --upgrade --ignore-installed six gensim

我使用了第二种方式进行的安装,如果这些依赖没有安装的,可以安装python和相关的工具后,直接使用pip或easy_install安装。
在进行模型训练的时候,如果不安装Cython,无法进行多线程训练,速度很瘦影响,所以接着安装下Cython
pip install cython

㈤ Python中的cStringIO问题

Python3 没有cStringIO, 改为io

tim@ubtim:~$ python
Python 2.7.3 (default, Sep 26 2013, 20:08:41)
[GCC 4.6.3] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import cStringIO
>>> exit()

tim@ubtim:~$ python3
Python 3.2.3 (default, Sep 25 2013, 18:25:56)
[GCC 4.6.3] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import cStringIO
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
ImportError: No mole named cStringIO
>>> import io
>>> ios = io.StringIO()
>>>

㈥ python里计算每个数字出现的频数

python 3.3 脚本,看看是否能给你点启示
a = [1,2,5,1,2,3,5,6,6,5,4,6,4,2,0,8,9,7,4,1,1,2,2,2,2,2,2,2,2,3,3,3,2,5,2,5,8,5,5]
count = len(a)
myset = set(a)
for item in myset:
print(item,100*a.count(item)/count)

㈦ 为什么要学python,感觉能做的C都能,脚本语言的优势就在于更简单吗

代码简洁,编程效率高,虽然运行效率差c很多,但是写一个c能写3个python文本了,适用于快速开发需求,还有强大的第三方库,支持很多平台。

㈧ 怎么看python中逻辑回归输出的解释

以下为python代码,由于训练数据比较少,这边使用了批处理梯度下降法,没有使用增量梯度下降法。

##author:lijiayan##data:2016/10/27
##name:logReg.pyfrom numpy import *import matplotlib.pyplot as pltdef loadData(filename):
data = loadtxt(filename)
m,n = data.shape print 'the number of examples:',m print 'the number of features:',n-1 x = data[:,0:n-1]
y = data[:,n-1:n] return x,y#the sigmoid functiondef sigmoid(z): return 1.0 / (1 + exp(-z))#the cost functiondef costfunction(y,h):
y = array(y)
h = array(h)
J = sum(y*log(h))+sum((1-y)*log(1-h)) return J# the batch gradient descent algrithmdef gradescent(x,y):
m,n = shape(x) #m: number of training example; n: number of features x = c_[ones(m),x] #add x0 x = mat(x) # to matrix y = mat(y)
a = 0.0000025 # learning rate maxcycle = 4000 theta = zeros((n+1,1)) #initial theta J = [] for i in range(maxcycle):
h = sigmoid(x*theta)
theta = theta + a * (x.T)*(y-h)
cost = costfunction(y,h)
J.append(cost)

plt.plot(J)
plt.show() return theta,cost#the stochastic gradient descent (m should be large,if you want the result is good)def stocGraddescent(x,y):
m,n = shape(x) #m: number of training example; n: number of features x = c_[ones(m),x] #add x0 x = mat(x) # to matrix y = mat(y)
a = 0.01 # learning rate theta = ones((n+1,1)) #initial theta J = [] for i in range(m):
h = sigmoid(x[i]*theta)
theta = theta + a * x[i].transpose()*(y[i]-h)
cost = costfunction(y,h)
J.append(cost)
plt.plot(J)
plt.show() return theta,cost#plot the decision boundarydef plotbestfit(x,y,theta):
plt.plot(x[:,0:1][where(y==1)],x[:,1:2][where(y==1)],'ro')
plt.plot(x[:,0:1][where(y!=1)],x[:,1:2][where(y!=1)],'bx')
x1= arange(-4,4,0.1)
x2 =(-float(theta[0])-float(theta[1])*x1) /float(theta[2])

plt.plot(x1,x2)
plt.xlabel('x1')
plt.ylabel(('x2'))
plt.show()def classifyVector(inX,theta):
prob = sigmoid((inX*theta).sum(1)) return where(prob >= 0.5, 1, 0)def accuracy(x, y, theta):
m = shape(y)[0]
x = c_[ones(m),x]
y_p = classifyVector(x,theta)
accuracy = sum(y_p==y)/float(m) return accuracy

调用上面代码:

from logReg import *
x,y = loadData("horseColicTraining.txt")
theta,cost = gradescent(x,y)print 'J:',cost

ac_train = accuracy(x, y, theta)print 'accuracy of the training examples:', ac_train

x_test,y_test = loadData('horseColicTest.txt')
ac_test = accuracy(x_test, y_test, theta)print 'accuracy of the test examples:', ac_test

学习速率=0.0000025,迭代次数=4000时的结果:

似然函数走势(J = sum(y*log(h))+sum((1-y)*log(1-h))),似然函数是求最大值,一般是要稳定了才算最好。

从上面这个例子,我们可以看到对特征进行归一化操作的重要性。

㈨ 如何用Python实现支持向量机

看这个文章
blog.csdn.net/zouxy09/article/details/17292011
机器学习算法与Python实践之(四)支持向量机(SVM)实现

㈩ python opencv 表示mat类型吗

、Mat类型:矩阵类型Matrix
openCVMat维密集数据数组用处理向量矩阵、图像、直图等等见维数据
Mat3重要:
1、Mat mat = imread(const String* filename); 读取图像
2、imshow(const string frameName, InputArray mat); 显示图像
3、imwrite (const string& filename, InputArray img); 储存图像
Mat类型较CvMat与IplImage类型说更强矩阵运算能力支持见矩阵运算计算密集型应用CvMat与IplImage类型转化Mat类型减少计算间花费
A.Mat -> IplImage
同创建图像没复制数据
例: // 假设Mat类型imgMat图像数据存
IplImage pImg= IplImage(imgMat);
B.Mat -> CvMat
与IplImage转换类似复制数据创建矩阵
例: // 假设Mat类型imgMat图像数据存
CvMat cvMat = imgMat;

二、CvMat类型与IplImage类型:图像类型
openCVMat类型与CvMatIplImage类型都代表显示图像Mat类型侧重于计算数性较高openCVMat类型计算进行优化CvMatIplImage类型更侧重于图像openCV其图像操作(缩放、单通道提取、图像阈值操作等)进行优化
补充:IplImage由CvMat派CvMat由CvArr派即CvArr -> CvMat -> IplImage
CvArr用作函数参数论传入CvMat或IplImage内部都按CvMat处理
1.CvMat
A.CvMat-> IplImage
IplImage* img = cvCreateImage(cvGetSize(mat),8,1);
cvGetImage(matI,img);
cvSaveImage("rice1.bmp",img);
B.CvMat->Mat
与IplImage转换类似选择否复制数据
Mat::Mat(const CvMat* m, bool Data=false);
openCV没向量(vector)数据结构任何候我要表示向量用矩阵数据表示即
CvMat类型与我线性代数课程向量概念相比更抽象比CvMat元素数据类型并仅限于基础数据类型比面创建二维数据矩阵:
CvMat* cvCreatMat(int rows ,int cols , int type);
type任意预定义数据类型比RGB或者别通道数据我便CvMat矩阵表示丰富彩图像

2.IplImage
类型关系我说IplImage类型继承自CvMat类型包括其变量解析图像数据
IplImage类型较CvMat参数比depthnChannels普通矩阵类型通深度通道数同表示用32位表示RGB+Alpha.图像处理我往往深度与通道数处理做OpenCV图像表示种优化案
IplImage图像另种优化变量origin----原点计算机视觉处理重要便原点定义清楚图像源编码格式甚至操作系统都原选取产影响弥补点openCV允许用户定义自原点设置取值0表示原点位于图片左角1表示左角
dataOrder参数定义数据格式IPL_DATA_ORDER_PIXELIPL_DATA_ORDER_PLANE两种取值前者便于像素同通道数据交叉排列者表示所通道按顺序平行排列
IplImage类型所额外变量都图像表示与计算能力优化
A.IplImage -> Mat
IplImage* pImg = cvLoadImage("lena.jpg");
Mat img(pImg,0); // 0复制影像pImg与imgdata共用同记忆体位置header各自
B.IplImage -> CvMat
1:CvMat mathdr, *mat = cvGetMat( img, &mathdr );
2:CvMat *mat = cvCreateMat( img->height, img->width, CV_64FC3 );
cvConvert( img, mat );
C.IplImage*-> BYTE*
BYTE* data= img->imageData;

CvMatIplImage创建区别:
1、建立矩阵第参数行数第二参数列数
CvMat* cvCreateMat( int rows, int cols, int type );
2、建立图像CvSize第参数宽度即列数;第二参数高度即行数 CvMat矩阵相反
IplImage* cvCreateImage(CvSize size, int depth, int channels );
CvSize cvSize( int width, int height );

IplImage内部buffer每行按4字节齐CvMat没限制

补充:
A.BYTE*-> IplImage*
img= cvCreateImageHeader(cvSize(width,height),depth,channels);
cvSetData(img,data,step);
//首先由cvCreateImageHeader()创建IplImage图像制定图像尺寸深度通道数;
//由cvSetData()根据BYTE*图像数据指针设置IplImage图像数据数据
//其step指定该IplImage图像每行占字节数于1通道IPL_DEPTH_8U图像step等于width

阅读全文

与pythoncvector相关的资料

热点内容
小熊编程教程 浏览:908
word转换成pdf转换器免费下载 浏览:608
群体智能基本算法 浏览:370
可编程软件分为哪两种 浏览:340
格林什么app可以看 浏览:697
飞卢app仙侠热卖推荐怎么样 浏览:722
飞秋上传文件到共享文件夹 浏览:691
服务器的共享文件夹如何访问 浏览:232
复盛螺杆压缩机讲解 浏览:332
柱在基础插筋需要加密吗 浏览:80
51单片机中断寄存器 浏览:65
压缩文件后有病毒怎么办 浏览:618
苹果ipad怎么登安卓王者账号 浏览:862
街头足球服务器已满是什么意思 浏览:462
androidspeex回音消除 浏览:133
加密会议什么意思 浏览:34
ubuntu命令行联网 浏览:7
37选7中奖概率及算法 浏览:593
加密狗哪个版本好 浏览:619
cisco命令手册 浏览:502