GIL(全局解释器锁):多线程进行并发工作时,是假的多任务,只有多进程才能实现真正的并发。多线程实际上只使用了一个核,而多进程可以使用多个核心。因为多线程工作时,由于GIL的互斥使用,导致同一时刻只能有一个线程在执行(run)。 在使用c语言编写的python解释器(Cpython)时,使用多线程更加节省空间。在c语言实现的python解释器中,存在GIL,java实现的python解释器没有此问
转载
2024-07-18 22:04:56
30阅读
前言Python的简单性、出色的可读性和流行的单行代码深深吸引了我。在下文中,我想介绍和解释其中的一些单行代码——也许有一些你还不知道并且对你的下一个 Python 项目很有用。1.交换两个变量我们从经典开始:通过简单地交换赋值位置来交换变量的值——我认为这是最直观的方式。无需使用临时变量。它甚至适用于两个以上的变量。# a = 1; b = 2
a, b = b, a
# print(a,b)
转载
2023-08-17 09:13:21
275阅读
# ZNCC(零均值归一化互相关)的科普与实现指南
在图像处理和计算机视觉中,特征匹配是一项重要的任务,ZNCC(零均值归一化互相关)是一种常用的相似性度量方法。ZNCC能够有效地比较两幅图像区域之间的相似性,尤其在处理不同光照或对比度变化时,表现得极为出色。本文将深入探讨ZNCC的基本原理,同时用Python代码给出一个简单的实现示例。
## 什么是ZNCC?
ZNCC的全称是零均值归一化
原创
2024-08-04 08:19:40
623阅读
# SSD和ZNCC匹配的Python实现
在计算机视觉中,模板匹配是一项重要的技术,用于在图像中查找与模板图像最相似的区域。SSD(Sum of Squared Differences)和ZNCC(Zero-mean Normalized Cross-Correlation)是两种常用的匹配方法。本文将介绍这两种匹配方法及其Python实现,带你了解它们的基本原理和应用场景。
## 模板匹配
A*算法python简单可视化实现A*算法详解:A*算法详解python实现:使用堆优化加快查找最小代价点 详细流程都写在注释里了使用方法:# 参数为地图高、宽、方格尺寸、起点坐标(0开始)、终点坐标(0开始)、延迟时间
demo = MiniMap(20, 30, 30, (0, 0), (29, 19), 0.05)鼠标左键单击方格添加/删除障碍物,中键重置路径(不改变障碍物),右键开始寻路。
转载
2023-09-03 11:53:14
420阅读
今天一个Python学习的干货。几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万。这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各种算法的代码实现。传送门在此:https://github/TheAlgorithms/Python简单介绍下。算法的基本原理讲解部分,包括排序算法、搜索算法、插值算法、跳跃搜索算法、快速选择算
转载
2023-07-04 20:26:32
12阅读
一、算法简介1、定义算法是一组完成任务的指令;有限步骤内解决数学问题的程序;为解决某项工作或某个问题,所需要有限数量的机械性或重复性指令与计算步骤。2、算法的条件(5)输入性,输出性,明确性,有限性,有效性。3、时间复杂度O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n!)4、常见的大O运行时间(n一般为元素的个数):O(
转载
2023-08-10 15:24:31
100阅读
1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。一个
转载
2023-06-30 11:55:06
187阅读
算法的五大特性:1、输入:有0个或多个输入2、输出:有0个或多个输出3、确定性:算法每一步都有一定的含义,不会出现二义性4、有穷性:算法在执行有限的步骤之后会结束,而不是无线循环执行。5、可行性:算法的每一步都是可行的 如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合? &nbs
转载
2024-05-17 01:30:40
51阅读
狄克斯特拉算法的作用(目的):1.假如你要从学校回家,那么狄克斯特拉算法可以帮你找出从起点到终点耗时最短路径。2.假如你要在咸鱼上买东西,那么狄克斯特拉算法可以让你花最少的钱买到性价比最高的东西。狄克斯特拉算法的步骤:1.找出“权重最低的”节点,即可在最短时间内到达的节点2.更新该节点的邻居的开销,其含义将稍后介绍。3.重复这个过程,直到对图中的每个节点都这样做了。4.计算最终路径实现思路(这里我
转载
2024-04-10 09:21:03
94阅读
一、前言TF-IDF方法的主要思想是:如果某个词或短语在一篇文章中出现的频率(TF) 高,并且在其他文章中很少出现(IDF高),则认为此词或者短语具有很好的类别区分能力。二、步骤首先对文档进行特征提取操作:(1)分割句子:按照空格进行分割,去除数字以及标点符号,并将所有字符全部小写;(2)去除词汇:去除代词、冠词等功能词;(3)词干提取:去除单词的复数、过去式、比较级、最高级等形式。然后对生成的语
转载
2023-11-16 21:39:35
83阅读
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等。本文对于EM算法,我们主要从以下三个方向学习:1,最大似然2,EM算法思想及其推导3,GMM(高斯混合模型)1,最大似然概率 我们经常会从样本观察数据中,找到样本的模型参数。最常用的方法就是极大化模型分布
转载
2023-06-16 00:23:27
342阅读
Python中数据结构和算法的理解:Python中数据结构指的是静态的描述数据元素之间的关系,算法指的是解决问题的方法或步骤,换句话说算法是为了解决实际问题而设计的,数据结构是算法需要处理的问题载体数据结构和算法是一名程序开发人员的必备基本功,所以需要我们平时不断的主动去学习积累,接下来将自在文章中为大家具体介绍这两个知识点,希望对大家有所帮助。引入概念先来看一道题:如果 a+b+c=1000,且
转载
2023-08-21 15:45:11
96阅读
EM 算法求解高斯混合模型python实现
注:本文是对《统计学习方法》EM算法的一个简单总结。1. 什么是EM算法? 引用书上的话:概率模型有时既含有观测变量,又含有隐变量或者潜在变量。如果概率模型的变量都是观测变量,可以直接使用极大似然估计法或者贝叶斯的方法进行估计模型参数,但是当模型含有隐藏变量时,就不能简单使用这些方法了。E
转载
2024-05-16 20:15:35
72阅读
A*作为最常用的路径搜索算法,值得我们去深刻的研究。路径规划项目。先看一下维基百科给的算法解释:https://en.wikipedia.org/wiki/A*_search_algorithmA *是最佳优先搜索它通过在解决方案的所有可能路径(目标)中搜索导致成本最小(行进距离最短,时间最短等)的问题来解决问题。 ),并且在这些路径中,它首先考虑那些似乎最快速地引导到解决方案的路径。它是根据加权
转载
2023-06-29 11:52:31
108阅读
我们先来看几个概念1、算法算法:一种解决问题的方法和思想2、时间复杂度计算 1 + 2 + 3 + … + 100先看下面这段代码:tot = 0
for x in range(1,101):
tot += x
print(tot)分析:进入循环体后,tot += x 等价于 tot = tot + xtot + x为一个基本运算=赋值运算符为一个基本运算循环体执行了 100次,则程序一共
转载
2023-06-16 20:39:12
236阅读
最近思考了一下未来,结合老师的意见,还是决定挑一个方向开始研究了,虽然个人更喜欢鼓捣。深思熟虑后,结合自己的兴趣点,选择了NLP方向,感觉比纯粹的人工智能、大数据之类的方向有趣多了,个人还是不适合纯粹理论研究 :)。发现图书馆一本语言处理方面的书也没有后,在京东找了一本书--《NLP汉语自然语言处理原理与实践》,到今天看了大约150页,发现还是很模糊,决定找点代码来看。 从最简单
转载
2023-12-18 14:58:30
59阅读
文章目录定义模板方法模式适用场景日常例子理解该模式了解模板方法设计模式模板方法模式的UML类图现实中的模板方法模式模板方法模式——钩子好莱坞原则与模板方法模板方法的优缺点问答 定义模板方法模式行为模式主要关注对象的响应性。它处理对象之间的交互以实现更强大的功能。模板方法模式是一种行为设计模式,通过一种称为模板方法的方式来定义程序框架或算法。例如,你可以将制作饮料的步骤定义为模板方法中的算法。模板
转载
2023-07-07 21:47:18
103阅读
算法是程序的灵魂,每个程序员,尤其是高手程序员,对算法的掌握应该是如数家珍,必须要熟悉。算法非常枯燥,但是研究透了对你的程序功底非常有帮助。那么用Python如何实现主流的算法呢?今天推荐一个巨牛的repo,不仅把主流的算法都讲了一遍还用Python代码实现了,一起来看一下。 01
Github标星近4万这个repo有近23个大牛一起维护的,领头的
转载
2023-08-14 17:04:04
76阅读
写在前面本文参考十大经典排序算法(动图演示),这篇文章有动图显示,介绍的很详细。本文是部分内容有借鉴此博客,用python实现,有一些改进。各种算法的时间、空间复杂度1.冒泡排序1.比较相邻的元素。如果第一个比第二个大,就交换它们两个;2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;3.针对所有的元素重复以上的步骤,除了最后一个;4.重复步骤1~3
转载
2023-08-15 14:51:55
70阅读