python
文章平均质量分 59
一只tobey
中国,广州,从城中到乡下,再从乡下进城里,保持努力!
展开
-
输出控制符%s、%d、%x、%f
因为计算机中所有的数据都是二进制 0、1 代码,所以输出的时候要用“输出控制符”告诉计算机以什么形式将二进制数据显示出来。转载 2022-11-16 14:52:36 · 3288 阅读 · 0 评论 -
python列表的维度判断,例如(5,)是几维的?
因此(5,)这样的shape是一维数组,具体的,对于a,b,c变量来说,数组元素并未对齐,意味着里面的每一位元素都是字面量,可以看作一个整体。如果列表是一个多维的数组,那么一定是数组的数组,需要对齐。list的shape可以使用numpy来进行获取。还可以获取list的维度。原创 2022-10-11 16:34:07 · 2699 阅读 · 1 评论 -
使用python压缩文件夹和os.path模块的部分说明
使用python,通过zipfile库自动完成目标文件夹的压缩原创 2021-12-16 11:29:08 · 1642 阅读 · 0 评论 -
正则re.S和字符串前的u,r,b,f的作用
目录一、字符串操作前面的u,r,b,f的作用1、字符串前边加u:2、字符串前边加r:3、字符串前边加b:4、字符串前边加f:二、正则re.S一、字符串操作前面的u,r,b,f的作用1、字符串前边加u:例如: u"我含有中文字符123"作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。2、字符串前边加r:应用:我们常能在正则表达式中看到,pattern = re.compile(r"吗.转载 2021-10-13 19:51:20 · 1354 阅读 · 0 评论 -
方法中的局部变量的生命周期和for循环等循环结构的变量的生命周期
import java.util.ArrayList;public class LifeTime { public static void main(String[] args) { method(); } public static void method(){ ArrayList list = new ArrayList(); int count = 5; for (int i = 0; i < coun.原创 2020-12-04 15:21:09 · 888 阅读 · 0 评论 -
进程,单线程,多线程之间的比较和举例
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。多线程的好处:可以提高CPU的利用率。在多线程..转载 2020-09-01 17:10:20 · 900 阅读 · 0 评论 -
面向对象的继承和多态,剖析对象的信息(获取相关信息),类属性和实例属性
继承:当定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。继承有什么好处?最大的好处是子类获得了父类的全部功能。继承的第二个好处需要我们对代码做一点改进。多态:当子类和父类都存在相同的方法时,我们说,子类的方法覆盖了父类的方法,在代码运行的时候,总是会调用子类的方法。这样,我们就获得了继承的另一个好处:多态。多态真正的威力:调用方只管调用,不管细节,而当我们新原创 2020-08-20 17:30:58 · 172 阅读 · 0 评论 -
面向对象,即class类,类的封装,属性的类别划分,
数据封装、继承和多态是面向对象的三大特点。面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。class Student(object): pass# class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,如果没有合适的继承类,就使用object类,这是所有类最原创 2020-08-20 16:43:40 · 447 阅读 · 0 评论 -
python模块的定义,和模块的作用域
模块: 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。优点:最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此.原创 2020-08-20 15:20:48 · 839 阅读 · 0 评论 -
python序列的高阶函数:map,reduce,filter,sorted
函数本身也可以赋值给变量,即:变量可以指向函数abs # <built-in function abs> 即abs()函数,是函数本身f = abs # <built-in function abs> 是函数本身f(-10) # 10 是函数调用那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数!高阶函数:既然变量可以指向函数,函数的参数能接收变量,原创 2020-08-19 18:01:51 · 152 阅读 · 0 评论 -
列表生成器,iterable,iterator,generator,isinstance
[x * x for x in range(1, 11)] # 表达式计算出新的值[m + n for m in 'ABC' for n in 'XYZ'] # 两层循环生成全排列[k + '=' + v for k, v in d.items()] # for循环其实可以同时使用两个甚至多个变量[s.lower() for s in L] # 使用函数方法计算出新的值'''if else 和 for 的使用'''[x for x in range(1, 11) if x .原创 2020-08-19 10:58:00 · 417 阅读 · 0 评论 -
汉诺塔问题(递归)
汉诺塔问题不管在任何编程语言里都是经典问题,是采用递归算法的经典案例,该问题可以抽象如下:一 3根圆柱A,B,C,其中A上面串了n个圆盘二 这些圆盘从上到下是按从小到大顺序排列的,大的圆盘任何时刻不得位于小的圆盘上面三 每次移动一个圆盘,最终实现将所有圆盘移动到C上 利用Python语言接近自然语言的特性,开发者可以更容易的将递归算法翻译成程序语句,需要的...原创 2019-10-17 22:22:11 · 807 阅读 · 0 评论 -
斐波那契数列,递归函数的用例
斐波那契数列斐波那契数列的特征:f2=f1=1,fn=fn-1 + fn-2 ; n>=3 例如:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ...# 方法1 定义法 但是效率最低:O(1.618^n)# 该方法也适合产生类斐波那契数列a=time()def fb(n): if n==1 or n==2: ...原创 2019-10-12 14:37:40 · 744 阅读 · 0 评论 -
字符编码(python编码机制的过去和现在)
计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大原创 2020-08-18 14:50:54 · 149 阅读 · 0 评论 -
python中全局变量与局部变量
...转载 2019-10-23 13:36:31 · 176 阅读 · 0 评论 -
python的取余操作
python 取整与取余规则1) //运算取整时保留整数的下界,即偏向于较小的整数2) int是剪去小数部分,只保留前面的整数3) round函数遵循四舍五入的法则4) % 运算符,取余数时余数符号由被除数决定例如:"""原则:余数的符号和除数符号一致a%b=d 等价于a=b*c+d,其中a是被除数,b是除数,c是商,d是余数。1.被除数和除...原创 2019-10-22 13:41:33 · 11712 阅读 · 0 评论 -
numpy计算各种距离
import numpy as npdef minkowski_distance(vec1, vec2, p=3): """ 闵氏距离 当p=1时,就是曼哈顿距离 当p=2时,就是欧氏距离 当p→∞时,就是切比雪夫距离 :param vec1: :param vec2: :param p: :return: """...转载 2019-05-20 14:47:33 · 1509 阅读 · 0 评论 -
python中sorted方法和列表的sort方法对比
1.返回修改内容不同sorted(list1)返回一个排序好的list,不修改list1的排序list1.sort()直接修改list1的顺序2.得到多个序列,既要原序列也要排序序列假设x是一个列表y=x[:]y.sort()这样,x是原序列,y是排序好的序列。注意:y=x[:]通过分片操作将x的元素全部拷贝给y;如果简单的把x的值赋值给y:y=x,那么y和x都指向同一...原创 2019-06-18 14:32:25 · 532 阅读 · 0 评论 -
Python中的random模块生成随机数
random模块:1.random.random()不接受参数,生成一个标准正态分布的随机数2.random.uniform(a,b) 生成指定范围内的随机浮点数,a是下限,b是上限。a<=n<=b3.random.randint(a,b)生成指定范围内的随机整数,a<=n<=b4.random.shuffle(list1)将list1重新洗牌5.ran...原创 2019-06-17 15:47:14 · 1052 阅读 · 0 评论 -
np.ascontiguousarray(array)
从Numpy中的ascontiguousarray说起Numpy中,随机初始化的数组默认都是C连续的,经过不规则的slice操作,则会改变连续性,可能会变成既不是C连续,也不是Fortran连续的。Numpy可以通过.flags熟悉查看一个数组是C连续还是Fortran连续的。对array进行按列的slice操作,不改变每行的值,则还是C连续的;如果进行在行上的slice,则会改变连续性...转载 2019-06-21 10:49:53 · 17606 阅读 · 1 评论 -
python 读取和写入文件建议使用codecs.open而不是python内置的open
import codecswith codecs.open('../log/front.json','w',encoding='utf-8') as f: pass详细参考:python 文件读写时用open还是codecs.open转载 2019-06-04 11:24:47 · 1430 阅读 · 0 评论 -
关于图像的说明
图像的shape一般标注是(H,W,3)或者(3,H,W);H:Height, W:Width分别代表图片的高度,图片的宽度一般来说给出一个图像的size或者shape:hxw(比如40x100大小)实际上对应的是什么呢:对于PIL模块的Image模块,img=Image.open('1.jpg')H = img.heightW = img.width(W,H)=i...原创 2019-06-14 15:14:45 · 1109 阅读 · 0 评论 -
将list写入txt文件里面
with open(os.path.join(ProcessedPath,image_txt_name), 'w') as file: for i in range(len(mylist)): s = str(mylist[i].replace('[', '')).replace(']', '') s = s.replace("'", '').replac...原创 2019-06-05 21:55:37 · 9304 阅读 · 1 评论 -
读取xml文件
xml文件常用于检测任务的标注,里面一般会包含bndox。关于xml的其他信息可以参考:https://www.cnblogs.com/miniren/p/5092019.html import xml.dom.minidom #载入xml文件 DomTree = xml.dom.minidom.parse(xmlfile)...原创 2019-06-05 21:52:48 · 878 阅读 · 0 评论 -
生成随机数Tensor的方法汇总(均匀分布,标准正态分布,离散正态分布,线性间距向量)
PyTorch 常用方法总结1:生成随机数Tensor的方法汇总(标准分布、正态分布……)均匀分布:torch.rand()标准正态分布:torch.randn()离散正态分布:torch.normal()线性间距向量:torch.linespace()...转载 2019-05-23 22:55:39 · 2017 阅读 · 0 评论 -
各种随机数,设定随机种子
def setup_seed(seed): torch.manual_seed(seed) torch.cuda.manual_seed_all(seed) np.random.seed(seed) random.seed(seed) torch.backends.cudnn.deterministic = True# 设置随机数种子setu...转载 2019-05-27 15:32:19 · 3740 阅读 · 0 评论 -
将符合规定阈值范围内的全部变为1,不符合规定的全部变为0
cb = newimge[1, :]cr = newimge[2, :]binary = np.logical_and(np.logical_and(np.logical_and(cb < 127,cb > 100), cr < 170),cr > 138).astype(np.uint8)*255binary = binary.reshape(H,W)img_yc...原创 2019-05-20 23:21:40 · 1088 阅读 · 0 评论 -
cv2.imread(fp)读取图片,得到的是BGR颜色空间的numpy类型,uint8类型
注意:当读取的是一张灰度图(只有一个通道),会按bgr三个通道读取。这三个通道的像素值是相同的。opencv的相关函数集合:将numpy.ndarray转换为OpenCV图像的关键点就是numpy.ndarray中的每个元素的dtype应该为numpy.uint8def imread(filename,flags=None): pass """ 加载指定路径的图片,并返...原创 2019-06-24 22:13:29 · 10234 阅读 · 0 评论 -
skimage.io模块读取图片
skimage.io.imread(fp)返回的是numpy数据,hxwx3,正常RGB通道显示原创 2019-06-24 22:20:37 · 3211 阅读 · 0 评论 -
from scipy import misc 读取和保存图片
from scipy import miscdef imread(name, flatten=False, mode=None) pass"""读取一张图片返回array,uint8,"""def imsave(name, arr, format=None): pass"""Save an array as an image. 自动的调用将图片转成0-255范围内...原创 2019-06-24 22:55:50 · 3015 阅读 · 0 评论 -
Python的hasattr() getattr() setattr() 函数使用方法详解
hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。>>> class test():... name="xiaohua"... def run(self):... return "HelloWord"...&...原创 2018-08-10 14:39:48 · 154 阅读 · 0 评论 -
Python 中__new__()和__init__()的区别
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-10-10 23:44:10 · 133 阅读 · 0 评论 -
python运算符的运算,以及优先级
1、逻辑运算符(1)and逻辑表达式:x and y; 描述:布尔"与" --- 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(2)or逻辑表达式:x or y; 描述:布尔"或" --- 如果 x 是非 0(判断x是True),它返回 x 的值,否则它返回 y 的计算值。(3)not逻辑表达式:not x; 描述...原创 2019-09-21 12:47:59 · 1305 阅读 · 0 评论 -
python中的False的情况聚总
None是一个对象,其类型为None Type,其bool值为False;0是一个对象,其类型为int,其bool值为Falsepython中为False的对象有:对于基本数据类型:(1)bool type,False表示False,其他为True(2)int and float type,0表示False,其他为True(3)string type and other st...原创 2019-09-20 16:28:39 · 3741 阅读 · 0 评论 -
进程,线程,协程;并发,并行;同步,异步
转:https://www.cnblogs.com/yuanchenqi/articles/6755717.html转载 2019-09-13 11:27:13 · 267 阅读 · 0 评论 -
Python中如何拷贝一个对象?(赋值、浅拷贝、深拷贝的区别)
赋值,浅拷贝,深拷贝不同!非常值得参考:https://www.cnblogs.com/shenbuer/p/7977323.html1.赋值(引用)和复制Python 没有赋值,只有引用。Python 没有「变量」,我们平时所说的变量其实只是「标签」,是引用。values=[0,1,2]values[1]=valuesprint(values) # [0, [.....转载 2019-08-26 14:32:58 · 524 阅读 · 0 评论 -
匿名函数lambda
lambda函数是匿名函数,使用lambda函数能创建小型匿名函数,这种函数得名于省略了用def声明函数的标准步骤lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数优点:1.lambda函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都很随意的情况下2.匿名函数,一般用来给filter,map, sorted里面的...原创 2019-08-21 21:39:36 · 275 阅读 · 0 评论 -
glob模块 glob(pathname, recursive=False),iglob(pathname, recursive=False),escape(pathname)
参考链接: [Python模块学习] glob模块转载 2019-08-16 14:00:49 · 3516 阅读 · 0 评论 -
集合的运算关系
运算关系总共有:交集,并集,差集,对称差集交集:set1&set2并集:set1|set2差集:set1-set2表示属于set1但不属于set2的集合对称集:set1^set2=(set1-set2)|(set2-set1)空集合的时候只能用set()函数定义,不能使用{}否则会被看成是字典a=set()1.添加元素:(1)a.add(x), 元素 x...原创 2019-08-15 23:20:14 · 2217 阅读 · 0 评论 -
python的各种推导式
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:列表(list)推导式 字典(dict)推导式 集合(set)推导式一、列表推导式1、使用[]生成list基本格式variable = [out_exp_res for out_ex...转载 2019-08-15 22:28:47 · 177 阅读 · 0 评论