什么是粒子群算法粒子群算法,也称粒子群优化算法或鸟群觅食算法(ParticleSwarmOptimization,PSO)。由J.Kennedy和R.C.Eberhart等人于1995年提出。其属于进化算法的一种,也是从随机解出发,通过迭代寻找最优解,其通过适应度来评价解的品质。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。求解过程PSO通过模拟鸟群的捕食行为完成最优解的求取。假设一群鸟在一个空间捕捉食物
系统 2019-09-27 17:52:21 2151
前言在Python中元组是一个相较于其他语言比较特别的一个内置序列类型。有些python入门教程把元组成为“不可变的列表”,这种说法是不完备的,其并没有完整的概括元组的特点。除了用作不可变的列表,它还可以用于没有字段名的数据记录。下面的内容就围绕元组作为数据记录属性展开,并介绍带字段名的具名元组函数namedtuple,列表属性不再本文中叙述。元组对于数据的记录元组中的每个元素都存放了记录中一个字段的数据,外加这个字段的位置,正是这个位置信息给数据赋予了意
系统 2019-09-27 17:51:46 2151
Python3快速入门(十二)——NumPy一、NumPy简介1、NumPy简介NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时对数组运算提供了大量的数学函数库。Numpy是一个运行速度非常快的数学库,内部解除了CPython的GIL(全局解释器锁),运行效率极好,主要用于数组计算,是大量机器学习框架的基础库,NumPy主要包括如下:(1)强大的N维数组对象ndarray(2)广播功能函数(
系统 2019-09-27 17:51:41 2151
使用诸如Lock、RLock、Semphore之类的锁原语时,必须多加小心,锁的错误使用很容易导致死锁或相互竞争。依赖锁的代码应该保证当出现异常时可以正常的释放锁。典型代码如下:try:lock.acquire()#关键部分...finally:lock.release()另外,所有种类的锁还支持上下文管理协议(写起来更简洁):with语句自动获取锁,并且在控制流离开上下文时自动释放锁。withlock:#关键部分...此外,编写代码时一般应该避免同时获取
系统 2019-09-27 17:50:41 2151
实际上JSON就是Python字典的字符串表示,但是字典作为一个复杂对象是无法直接传递,所以需要将其转换成字符串形式.转换的过程也是一种序列化过程.用json.dumps序列化为json字符串格式复制代码代码如下:>>>importjson>>>dic{'Connection':['keep-alive'],'Host':['127.0.0.1:5000'],'Cache-Control':['max-age=0']}>>>jdict=json.dumps
系统 2019-09-27 17:50:19 2151
1.重点知识掌握使用命令行、文件、Jupyter的方式执行Python代码2.HelloWorld!自从C语言之父丹尼斯.M.里奇在《TheCProgrammingLanguage》中写下了第1个"HelloWorld!"程序后,人们在学习一门新语言时,首先打印“HelloWorld!”似乎成了某种约定俗称的仪式。我国是礼仪之邦,礼就是仪式,所以仪式感很重要。so,那么接下来,我们也来编写我们的“HelloWorld!”程序。3.解释器命令行中执行Pyth
系统 2019-09-27 17:50:19 2151
前言在Python开发中,有些情况下,我们可能面临在一台机器上同时安装多版本Python的需求。比如:有多个Python项目,每个项目依赖不同的Python版本。有一个Python项目,它需要同时支持多个Python版本。那么,如何高效地在单台机器上实现多个版本Python(具体来说,这里Python指的是Python解释器)的安装和维护呢?除此之外,我们还可能面临在一台机器上安装多个版本的某个Python第三方库的需求。比如:有多个Python项目,每个
系统 2019-09-27 17:50:01 2151
背景:最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置了函数调用超时机制。代码:importtimeimportsignaldeftest(i):time.sleep(i%4)print"%dwithintime"%(i)returniif__name__=='__main__':defhandler(signum,frame):raiseAssertionErrorforiinrange(1,10):try:sign
系统 2019-09-27 17:48:29 2151
递归和迭代从本质上看都是循环的一种,递归通过在循环中调用自身,而迭代则通过某段代码实现循环一般来说:迭代的思想会使问题简单化,但计算过程会十分繁琐,因为参数要通过传递的形式先到达递归条件值,然后再一层一层返回,会占用大量内存,只适用于小型的问题求解。一、递归:它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量注意:递归就是在过程或函数里面调用自身
系统 2019-09-27 17:47:18 2151
本文实例借鉴mvc模式,核心数据为model,维护1个矩阵,0表无雷,1表雷,-1表已经检测过。本例使用python的tkinter做gui,由于没考虑可用性问题,因此UI比较难看,pygame更有趣更强大更好看,做这些小游戏更合适,感兴趣的读者可以尝试一下!具体的功能代码如下:#-*-coding:utf-8-*-importrandomimportsysfromTkinterimport*classModel:"""核心数据类,维护一个矩阵"""def
系统 2019-09-27 17:47:00 2151