![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python
文章平均质量分 53
python学习过程中知识总结
Fighting_1997
唯有勤奋不会辜负于你。
展开
-
openmmlab安装库记录
库记录原创 2023-02-08 11:23:15 · 340 阅读 · 0 评论 -
mmdetection第三讲
目标检测原创 2023-02-07 17:39:26 · 74 阅读 · 0 评论 -
MMclassification第二课
1原创 2023-02-03 21:18:26 · 95 阅读 · 0 评论 -
MMclassification图像分类
概念:给定一张图片,识别图像中的物体是什么?原创 2023-02-03 21:14:21 · 122 阅读 · 0 评论 -
vscode终端不显示conda环境变量名称问题
vscode终端缺少conda环境变量名称。原创 2023-02-03 09:26:52 · 4613 阅读 · 6 评论 -
python常见数据格式读写
【代码】常见数据读写。原创 2022-12-21 09:57:58 · 486 阅读 · 0 评论 -
python装饰器
python装饰器原创 2022-12-18 15:13:32 · 476 阅读 · 0 评论 -
python整数缓存和字符串驻留机制
学习python时存在一些python存储机制的疑惑,有机会进行梳理便于自己和他人学习,故写下此篇博客所谓对象就是一种存储方式,变量一般存储在栈中,对象存储在堆中,对象内容包含:id,type,value。python定义变量不声明是因为对象中已经存在type类型,因此不用声明。工具:pycharm在python console中整数缓存[-5,256],也就是使用此范围的数据,将从缓存表中直接取得,所有变量通过引用使用数字将使用同一个对象,id相同,如下图1。而超出数据范围的数字将重新创建对象,不同的原创 2022-12-07 10:14:59 · 750 阅读 · 1 评论 -
python常见进制转换方法
其中比较常用到的是python的内置函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串或者是自定义的字符串先转换为10进制然后将10进制转换为其他的进制,常见的是二进制、十进制、八进制、十六进制之间的转换,其中遵循一个原则是:其他进制转为十进制使用int函数,其他进制转为二进制使用bin函数,其他进制转为八进制使用oct函数,其他进制转为十六进制转为hex函数,并且是借助于10进制作为中间的桥梁进行转换,也就是使用到int()函数.原创 2022-11-14 23:18:41 · 20360 阅读 · 3 评论 -
python 引用、浅拷贝、深拷贝
python引用,拷贝原创 2022-11-14 12:31:40 · 684 阅读 · 0 评论 -
Python调试pdb和ipdb
什么是pdb不知道大家在用Python写代码出现报错时是怎样调试的,从报错提示定位回去一步一步check每一行?如果没有IDE或者命令行写代码时又该怎样快速调试?这时如果使用pdb进行调试将会异常方便。Pdb就是Python debugger,是python自带的调试器。通过 pdb 我们可以交互式的查看运行过程中变量的值、设置断点、逐行执行代码、查看代码的调用栈等等。并且如果环境没有 GUI 的话,那么 pdb 能够助你更快速的调试代码。之前我使用ubuntu系统界面或者windows,使用断点调试原创 2022-05-19 21:15:48 · 1568 阅读 · 0 评论 -
Python filter使用学习
今天想跟大家分享一下关于Python中的过滤器相关知识,主要针对数据部分,过滤器filter()函数其实能帮助我们解约不少时间,应用也十分广泛。1、filter() 函数的介绍1.1 功能filter() 函数用于 过滤 可迭代对象中不符合条件的元素,返回由符合条件的元素组成的新的迭代器。filter() 函数把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False,来决定保留或丢弃该元素。1.2 语法参数说明:(1) function:用于实现判断的函数,可以为 None。原创 2022-05-05 15:40:49 · 4827 阅读 · 1 评论 -
python实用技巧总结
1.处理用户的多个输入有时我们需要从用户那里获得多个输入,以便使用循环或任何迭代,一般的写法如下:# bad practice码n1 = input("enter a number : ")n2 = input("enter a number : ")n2 = input("enter a number : ")print(n1, n2, n3)更好的处理方法# good practicen1, n2, n3 = input("enter a number : ").split()pr原创 2022-05-05 09:21:12 · 264 阅读 · 0 评论 -
Python生成器和迭代器区别与联系
简单对比迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己的本身,对于string、list、dict、tuple等这类容器对象,使用for循环会更加方便。在后台for语句对容器对象调用iter()函数,iter()是Python内置函数。iter()会返回一个定义了next()方法的迭代器对象,在容器中逐个访问容器内元素,next()也是Python的内置函数,无后续元素时,next()会抛出一个StopIteration异常生成器是创建迭代器简单而强大的工具,像正规原创 2022-04-24 20:11:20 · 1118 阅读 · 0 评论 -
Python学习之re模块
学习链接https://www.cnblogs.com/shenjianping/p/11647473.html常用匹配:字符串中去除符号两种实现方式:re.split(r'[^\w]', paragraph)import re,stringtext = " Hello, world! 这,是:我;第!一个程序\?()()<>《》 "punc = '~`!#$%^&*()_+-=|\';":/.,?><~·!@#¥%……&*()——+-=“:’;、原创 2022-04-17 10:28:40 · 386 阅读 · 0 评论 -
cnn、max_pool和avg_pool Python实现
numpy实现import numpy as npfrom numpy.lib.stride_tricks import as_strideddef pool2d(A, kernel_size, stride, padding, pool_mode='max'): A = np.pad(A, padding, 'constant') output_shape = ((A.shape[0]-kernel_size)//stride+1, (A.shape[1]-kernel_size原创 2022-04-15 20:24:47 · 866 阅读 · 0 评论 -
Python常用列表、元组、集合、字典、队列等运行时间复杂度总结
此页面记录了当前CPython中各种操作的时间复杂度(又名“Big O”或“大欧”)。其他Python实现(或CPython的旧版本或仍在开发版本)可能具有略微不同的性能特征。但是, 通常可以安全地假设它们的速度不超过O(log n)。 通常, 'n’是容器中当前元素的数量。'k’是参数的值或参数中的元素数。1. listlst = list(range(10,20))l1 = list(range(100,105))操作时间复杂度描述lst[2]O(1)访问元素.原创 2022-04-13 09:10:25 · 2913 阅读 · 0 评论 -
暗通道去雾算法原理及实现
1. 算法原理基本原理来源于何凯明大神的CVPR09的论文Single Image Haze Removal Using Dark Channel Prior暗通道所谓暗通道是一个基本假设,这个假设认为,在绝大多数的非天空的局部区域中,某一些像素总会有至少一个颜色通道具有很低的值。这个其实很容易理解,实际生活中造成这个假设的原因有很多,比如汽车,建筑物或者城市中的阴影,或者说色彩鲜艳的物体或表面(比如绿色的树叶,各种鲜艳的花,或者蓝色绿色的睡眠),颜色较暗的物体或者表面,这些景物的暗通道总是变现为原创 2022-04-06 20:34:30 · 12293 阅读 · 3 评论 -
Python 二进制常用方法总结
题目要求,查看二进制中1的个数1. 转换二进制统计bin转化为二进制def countBinary(n): return str(bin(n)).count('1')2. 二进制移位# int val; // input dataans = 0while val != 0: if val & 1: ans += 1 val >>= 1 return ans代码中val & 1表示val 与 0x000…0001(其中有31个原创 2022-03-28 11:36:35 · 5672 阅读 · 0 评论 -
ACM python 输入输出
1 多行等长输出while True: try: l = list(map(int, input().split())) print(sum(l)) except: break2 多行不等长输出while True: try: l = list(map(int, input().split())) if len(l) != 1: print(sum(i)) else: pass except: break3 多行输入,遇00停止while Tru原创 2022-03-25 21:38:53 · 3150 阅读 · 0 评论 -
sigmoid与softmax的区别与联系
阅文原文Softmax与Sigmoid有哪些区别与联系?1. Sigmoid函数SigmoidSigmoidSigmoid函数也叫LogisticLogisticLogistic函数,将输入值压缩到(0,1)(0,1)(0,1)区间之中,其函数表达式为:Sigmoid(x)=11+e−xSigmoid(x) =\frac{1}{1+e^{-x}}Sigmoid(x)=1+e−x1函数图像如图所示:其求导之后的表达式为:Sigmoid′(x)=Sigmoid(x)⋅(1−Sigmoi原创 2022-03-09 22:47:15 · 1012 阅读 · 0 评论 -
深度学习面经总结
1. BN层的作用(1)BN使得网络中每层输入数据的分布相对稳定,加速模型学习速度(2)BN使得模型对网络中的参数不那么敏感,简化调参过程,使得网络学习更加稳定(3)BN允许网络使用饱和性激活函数(例如sigmoid,tanh等),缓解梯度消失问题(4)BN具有一定的正则化效果详细内容学习2. 空洞卷积空洞卷积(dilated convolution)是针对图像语义分割问题中下采样会降低图像分辨率、丢失信息而提出的一种卷积思路。利用添加空洞扩大感受野,让原本 3×33\times 33×3的卷原创 2022-03-09 22:46:47 · 1526 阅读 · 0 评论 -
Python3 maketrans()和translate方法
makertrans()和translate()方法描述maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。translate()表示建立好转换表后进行的映射操作例子# 映射关系mapping = [8,9,4,0,2,1,3,5,7,6]# 需要映射的数字nums = [991,338,38]# 1. 建立映射关系tab = s原创 2022-03-09 13:00:18 · 346 阅读 · 0 评论 -
目标检测:IoU(交并比)和 NMS(非极大值抑制)、Soft_NMS方法Python实现
交并比(Intersection over Union)和非极大值抑制是(Non-Maximum Suppression)是目标检测任务中非常重要的两个概念。例如在用训练好的模型进行测试时,网络会预测出一系列的候选框。这时候我们会用NMS来移除一些多余的候选框。即移除一些IOU值大于某个阈值的框。然后在剩下的候选框中,分别计算与ground truth的IOU值,通常会规定当候选框和ground truth的IOU值大于0.5时,认为检测正确。下面我们分别用python实现IOU和NMS。交并比IOU如原创 2022-03-05 15:39:03 · 521 阅读 · 0 评论 -
面向过程和面向对象程序设计优缺点总结
项目名称面向对象程序设计面向过程程序设计(也叫结构化编程)定义面向对象顾名思义就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。面向过程是“自上而下”的设计语言,先定好框架,再增砖添瓦。通俗点,就是先定好main()函数,然后再逐步实现mian()函数中所要用到的其他方法。特点封装、继承、多态算法+数据结构优势适用于大型复杂系统,方便复用适用于简单系统,容易理解劣势比较抽象、性...原创 2022-03-04 17:41:04 · 1089 阅读 · 0 评论 -
python中heapq模块
堆堆是非线性的树形的数据结构,有两种堆,最大堆与最小堆。( heapq库中的堆默认是最小堆)最大堆,树种各个父节点的值总是大于或等于任何一个子节点的值。最小堆,树种各个父节点的值总是小于或等于任何一个子节点的值。我们一般使用二叉堆来实现优先级队列,它的内部调整算法复杂度为logN。堆是一个二叉树,其中最小堆每个父节点的值都小于或等于其所有子节点的值。整个最小堆的最小元素总是位于二叉树的根节点。python的heapq模块提供了对(最小)堆的建立和使用。heapq堆数据结构原创 2022-02-18 12:12:15 · 583 阅读 · 0 评论 -
数据结构之二分法查找(左右边界,详细整理)
二分法作为数据结构的基础知识,经常作为使用,特意作为一次总结强调:二分法有两种形式,主要差异在于right的限制,本博客主要以其中一种方式展开,这种方式便于记忆和理解二分法查找pythondef binarySearch(nums: List[int], target[int]) -> int: left = 0, right = len(nums)-1 while left <= right: mid = left + (right - left) // 2 if nums原创 2022-02-14 11:15:16 · 2204 阅读 · 0 评论 -
Python常用数据结构之collections模块
Collectionscollections是日常工作中的重点、高频模块,常用类型有:计数器(Counter)双向队列(deque)默认字典(defaultdict)有序字典(OrderedDict)可命名元组(namedtuple)1. CounterCounter作为字典dicit()的一个子类用来进行hashtable计数,将元素进行数量统计,计数后返回一个字典,键值为元素,值为元素个数常用方法:most_common(int)按照元素出现的次数进行从高到原创 2022-02-09 10:51:06 · 121 阅读 · 0 评论 -
python eval函数
eval 函数eval() 函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果# 基本的数学计算In [1]: eval("1 + 1")Out[1]: 2# 字符串重复In [2]: eval("'*' * 10")Out[2]: '**********'# 将字符串转换成列表In [3]: type(eval("[1, 2, 3, 4, 5]"))Out[3]: list# 将字符串转换成字典In [4]: type(eval("{'name': '原创 2022-02-04 00:16:28 · 227 阅读 · 0 评论 -
Python 捕获异常
异常目标异常的概念捕获异常异常的传递抛出异常01. 异常的概念程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常程序停止执行并且提示错误信息 这个动作,我们通常称之为:抛出(raise)异常常见异常异常类型含义AssertionError当 assert 关键字后的条件为假时,程序运行会停止并抛出 AssertionError 异常AttributeError当试图访问的对象属原创 2022-02-04 00:12:09 · 13270 阅读 · 0 评论 -
python 文件操作
文件目标文件的概念文件的基本操作文件/文件夹的常用操作文本文件的编码方式01. 文件的概念1.1 文件的概念和作用计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据长期存储设备包括:硬盘、U 盘、移动硬盘、光盘…文件的作用将数据长期保存下来,在需要的时候使用CPU内存硬盘1.2 文件的存储方式在计算机中,文件是以 二进制 的方式保存在磁盘上的文本文件和二进制文件文本文件可以使用 文本编辑软件 查看本质上还是二进制文原创 2022-02-03 19:09:24 · 139 阅读 · 0 评论 -
python 面向对象编程思想
面向对象三大特性封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中定义类的准则继承 实现代码的重用,相同的代码不需要重复的编写设计类的技巧子类针对自己特有的需求,编写特定的代码多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果多态 可以 增加代码的灵活度以 继承 和 重写父类方法 为前提是调用方法的技巧,不会影响到类的内部设计...原创 2022-02-03 09:33:56 · 836 阅读 · 0 评论 -
Python __new__方法详解
单例目标单例设计模式__new__ 方法Python 中的单例01. 单例设计模式设计模式设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性单例设计模式目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例每一次执行 类名() 返回的对象,内存地址是相同的单例设计模式的应用场景音乐播放 对象回收站 对象打印机 对象…原创 2022-02-03 09:27:13 · 11018 阅读 · 0 评论 -
python多值参数传递和拆包(*args, **kwargs)
定义支持多值参数的函数有时可能需要 一个函数 能够处理的参数 个数 是不确定的,这个时候,就可以使用 多值参数python 中有 两种 多值参数:参数名前增加 一个 * 可以接收 元组参数名前增加 两个 * 可以接收 字典一般在给多值参数命名时,习惯使用以下两个名字*args —— 存放 元组 参数,前面有一个 ***kwargs —— 存放 字典 参数,前面有两个 *args 是 arguments 的缩写,有变量的含义kw 是 keyword 的缩写,kwa原创 2022-01-29 09:58:46 · 396 阅读 · 0 评论 -
python列表变量的+=使用说明
+= 赋值语句在 python 中,列表变量调用 += 本质上是在执行列表变量的 extend 方法,不会修改变量的引用def demo(num, num_list): print("函数内部代码") # num = num + num num += num # num_list.extend(num_list) 由于是调用方法,所以不会修改变量的引用 # 函数执行结束后,外部数据同样会发生变化 num_list += num_list pr原创 2022-01-29 09:55:08 · 2390 阅读 · 1 评论 -
python经典面试题之交换两个数
题目要求有两个整数变量 a = 6, b = 100不使用其他变量,交换两个变量的值解法 1 —— 使用其他变量c = bb = aa = c解法 2 —— 不使用临时变量a = a + bb = a - ba = a - b解法 3 —— Python 专有,利用元组a, b = b, a...原创 2022-01-29 09:48:43 · 744 阅读 · 0 评论 -
python高级使用之变量进阶(引用,可变性,局部变量和全局变量)
目标变量的引用可变和不可变类型01. 变量的引用变量 和 数据 都是保存在 内存 中的在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的1.1 引用的概念在 Python 中变量 和 数据 是分开存储的数据 保存在内存中的一个位置变量 中保存着数据在内存中的地址变量 中 记录数据的地址,就叫做 引用使用 id() 函数可以查看变量中保存数据所在的 内存地址注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用变量原创 2022-01-29 09:45:02 · 212 阅读 · 0 评论 -
python高级变量类型
高级变量类型目标列表元组字典字符串公共方法变量高级知识点回顾Python 中数据类型可以分为 数字型 和 非数字型数字型整型 (int)浮点型(float)布尔型(bool)真 True 非 0 数 —— 非零即真假 False 0复数型 (complex)主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题非数字型字符串列表元组字典在 Python 中,所有 非数字型变量 都支持以下特点:都是一个 序列 se原创 2022-01-29 09:19:28 · 134 阅读 · 0 评论 -
LINUX 上的 `Shebang` 符号
Shebang在直接调用脚本时,系统的程序载入器会分析 Shebang后的内容,将这些内容作为解释器指令,并调用该指令,将载有Shebang的文件路径作为该解释器的参数,执行脚本,从而使得脚本文件的调用方式与普通的可执行文件类似。例如,以指令#!/bin/sh开头的文件,在执行时会实际调用/bin/sh程序(通常是 Bourne shell或兼容的 shell,例如 bash、dash等)来执行。#!这个符号叫做 Shebang 或者 Sha-bangShebang 通常在 Unix 系统脚本的中原创 2022-01-29 09:18:04 · 2023 阅读 · 0 评论 -
Python代码规范
Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档其中第 8 篇文档专门针对 Python 的代码格式 给出了建议,也就是俗称的 PEP 8文档地址:https://www.python.org/dev/peps/pep-0008/谷歌有对应的中文文档:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/.原创 2022-01-28 09:49:03 · 63 阅读 · 0 评论