
python
月亮是蓝色
纸上得来终觉浅,绝知此事要躬行
展开
-
【python入门】arange()与range()的区别
range(start, end, step),返回一个list对象也就是range.object,起始值为start,终止值为end,但不含终止值,步长为step。只能创建int型list。arange(start, end, step),与range()类似,也不含终止值。但是返回一个array对象。需要导入numpy模块(import numpy as np或者from numpy im原创 2018-01-08 10:31:44 · 28992 阅读 · 1 评论 -
python中opencv imshow函数显示一片白色原因
imshow显示类型首先应当明确的是,opencv中imshow内部的参数类型可以分为两种。(1)当输入矩阵是uint8类型的时候,此时imshow显示图像的时候,会认为输入矩阵的范围在0-255之间。(2)如果imshow的参数是double类型的时候,那么imshow会认为输入矩阵的范围在0-1。显示出现问题原因:用OpenCV中imread输入照片后是一个数组对象,在进行一系列的对数组操作后...原创 2018-04-29 15:23:55 · 31841 阅读 · 12 评论 -
【python】可变对象与非可变对象
在Python中任何对象都有的三个通用属性:唯一标识,类型,值。唯一标识:用于标识对象的在内存中唯一,它在对象创建之后就不会再,函数可以查看对象的唯一标识 id()类型:决定了该对象支持哪些操作,不同类型的对象支持的操作就不一样,比如列表可以有长度属性,而整数没有同样地对象的类型一旦确定了就不会再变,函数可以报道查看对象的类型信息。 type()对象值:与唯一标识不一样,并不是所有的对象的值都是一...原创 2018-05-23 17:54:56 · 661 阅读 · 0 评论 -
python 自带的sum函数与numpy中sum两者巨大的区别
Python自带的sum函数与numpy中的sum函数有着天壤之别,没弄懂之前踩了大坑。1、Python 自带的sumPython自带的sum输入是个可迭代的。可以是列表,数组,可迭代对象。此时sum最多有两个参数第一个参数是可迭代的。当有两个参数时,第二个参数只能是个数。格式:sum(iterable, start)=可迭代的所有相加和+start值1.1 列表 ...原创 2018-11-14 05:55:28 · 6472 阅读 · 3 评论 -
【python】魔法之__getattribute__,__getattr__的用法总结
1:当定义一个类的实例时,毫无疑问首先调用类的初始化函数 def __init__(self)。2:当我们用的实例去访问实例的属性时,则首先调用方法 def __getatttibute__(self)3: 在类内没有方法 def __getattr__(self) 的前提下,如果用类的实例去调用一个实例不存在的属性时,则会抛出AttributeError异常常。下面看代码:...原创 2018-12-03 03:10:17 · 1914 阅读 · 0 评论 -
【python】一文弄懂迭代器iteror(__next__)对象与可迭代iterable对象
一、定义区别刚开始学的经常会被迭代器与可迭代对象弄混淆,下面清晰的介绍两者的不同。迭代器 Iterator (对象):如果一个对象同时拥有__iter__ 和 __next__方法的(对象),也就是说可以被next()函数调用并不断返回下一个值的对象称为迭代器。可迭代iterable (对象):如果一个对象拥有__iter__方法,其是可迭代对象,同时凡是可作用于for循环的对象都...原创 2018-12-05 23:35:36 · 1021 阅读 · 0 评论 -
【collections模块】collections.namedtuple使用
这里namedtuple函数返回的是一个名为typename的tuple子类,这个子类可以通过field_names访问子类的tuple成员,比tuple有更强大的功能。1:tuple通过item的index访问数据,或者通过index访问其itemstudent=('math','chinese','english')print(student[1])print(student.i...原创 2018-12-14 12:37:38 · 667 阅读 · 0 评论 -
【python】内置函数 slice()
slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。先来看看其定义吧 函数实际上是切片类的一个构造函数,返回一个切片对象,千万不能把其当作函数使用。默认start, step为None;下面看个例子:import numpy as nparr=np.arange(10)arr#Out[37]: array([0, 1, 2, 3, 4, 5, 6, 7, ...原创 2018-12-16 16:21:47 · 1052 阅读 · 0 评论 -
window10+anaconda+lableme 安装教程以及遇到的bug解决方案
1:打开Anaconda Prompt2:创建虚拟环境conda create --name=labelme python=3.6 (这里你可以选择自己的python版本)3:激活刚才创建的环境并进入activate labelme4:安装pyqtconda install pyqt 5:安装labelmepip install labelme6:安...原创 2018-12-11 16:09:30 · 2965 阅读 · 1 评论 -
window下labelme json_to_dataset批量转化
一:window10+anaconda+lableme 安装。window10下anaconda安装labelme教程二:对标注的json文件进行批量转化1:创建json_to_dataset.py脚本。import argparseimport jsonimport osimport os.path as ospimport warnings import PIL....原创 2019-04-15 16:03:23 · 3706 阅读 · 1 评论 -
【python】 一文弄懂浅拷贝与深拷贝
一、可变对象与非可变对象 想要理解浅拷贝与深拷贝就必须得先明白可变对象与非可变对象。 可变对象有: list ,dict ,set 不可变对象有:int ,float ,bool ,str ,tuple 。 两者区别:对于可变对象,其值改变是在原地址上操作,不会创建新的内存地址。对于不可变对象其值改变是直接创建新的内存地址。二、赋值操作符‘=’表示对象的引用...原创 2019-06-01 20:28:40 · 265 阅读 · 0 评论 -
【python】局部变量,全部变量,类变量,实例变量,类方法,实例方法,静态方法的使用
一:局部变量函数内部的变量名如果第一次出现,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量,局部变量只能在作用域内使用,也就是函数内部使用二:全局变量在模块中使用,其在函数和类的外面定义的定义的变量。如果函数中没有定于相同变量名的局部变量,则在函数中使用的该变量是全局变量。全局变量可以在全局的作用域使用三:类变量定义在类内,但不在方法和函原创 2018-05-06 16:55:41 · 2571 阅读 · 0 评论 -
python3安装opencv3扩展库以及jupyter环境下出现的问题汇总
由于需要使用SURF算法,而opencv是个不错的选择。但是opencv3版本的将一些不稳定的算法例如SURF算法放到了扩展库中,普通下载的opencv3库没有将这些算法包含在内。则需要下载对应opencv_contrib.一:下载对应版本的opencv的轮子(wheel)python一般安装库的方法采用pip install +库名。但是由于opencv好像是不支持python3的,不原创 2018-03-18 20:21:22 · 3527 阅读 · 0 评论 -
【python】读取文件
1.:首先准备好创建一个文件,可以放在工程目录或者自己随便建的文件夹里,如果不是在工程目录里则读取时路径需要绝对路径2:用open()函数打来文件3:读取文件4:关闭文件close().由于有时候程序容易出现bug,可能会导致关闭失败或者不知道什么时候关闭文件,这就导致更多的错误,我们可以用关键字with避免这种情况。with:在不需要访问的时候讲自动将文件关闭代入如下fi原创 2018-01-09 12:20:10 · 344 阅读 · 0 评论 -
【python】split函数用法及文件中字数
split()函数的应用split翻译为分裂。 split()就是将一个字符串分裂成多个字符串组成的列表。split()当不带参数时以空格进行分割,当代参数时,以该参数进行分割。比如一个文件中我们通常用空格来分开是不同的文字或者单词,因此我们就可以用spilt()函数求一个文件中含有多少个字或单词例子如下:原创 2018-01-09 15:02:41 · 2749 阅读 · 0 评论 -
【python】机器学习实战之KNN算法(超级详细)
话不多说直接上代码:import numpy as npimport operatorimport matplotlib.pyplot as plt group = np.array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1] ])原创 2018-02-02 17:25:02 · 522 阅读 · 0 评论 -
【python】机器学习实战KNN算法之约会网站
一、算法流程:二、约会网站实例流程:三、代码详解:import numpy as npimport operatorimport matplotlib.pyplot as plt def classify(inX, dataset, labels, k): """ inX 是输入的测试样本,是一个[x,原创 2018-02-03 14:20:15 · 806 阅读 · 2 评论 -
【python】机器学习实战KNN算法之手写数字识别
python代码实现:import numpy as npimport operatorimport matplotlib.pyplot as plt from os import listdirdef classify(inX, dataset, labels, k): dataSetSize = dataset.shape[0] diffMat =np. t原创 2018-02-03 18:46:47 · 821 阅读 · 0 评论 -
【python】机器学习实战之朴素贝叶斯分类
#---------------------------从文本中构建词条向量-------------------------#1 要从文本中获取特征,需要先拆分文本,这里特征是指来自文本的词条,每个词#条是字符的任意组合。词条可以理解为单词,当然也可以是非单词词条,比如URL#IP地址或者其他任意字符串 # 将文本拆分成词条向量后,将每一个文本片段表示为一个词条向量,值为1表示出现#原创 2018-02-07 21:19:13 · 1290 阅读 · 1 评论 -
【python】transpose详解
transpose是什么意识呢? 看如下例子:arr1 = np.arange(16).reshape((2,2,4)) arr1array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])这是原来的矩阵。如果对其进行转置,执行arr2 = arr1.t...原创 2018-03-02 17:30:15 · 7498 阅读 · 0 评论 -
【python入门】multiply用法
multiply(a,b)就是个乘法,如果a,b是两个数组,那么对应元素相乘先来看个例子:为什么上面的multiply(a, b)是这种结果,原因是multiply是ufunc函数当我们使用ufunc函数对两个数组进行计算时,ufunc函数会对这两个数组的对应元素进行计算,因此它要求这两个数组有相同的大小(shape相同)。如果两个数组的shape不同的话,会进行如下的广播转载 2018-03-02 19:18:22 · 28668 阅读 · 1 评论 -
【tensorboard】tensorboard的启动步骤及出现的问题汇总
tensorboard启动步骤:1:创建代码import tensorflow as tfimport osprint('__________________________开始计算图————————————————')with tf.Graph().as_default(): x=tf.placeholder(tf.float32) y=tf.placeholder原创 2018-03-17 01:18:23 · 3468 阅读 · 0 评论 -
Python代码规范(PEP8)问题及解决
最近刚刚接触Python,为了养成好习惯,尽量保证自己写的代码符合PEP8代码规范,下面是过程中报出的警告及解决方法,英文有些翻译不太准确见谅,会不断更新: PEP 8: module level import not at top of file 解决:import不在文件的最上面,可能引用之前还有代码,把import引用放到文件的最上部就可以消除警告了。 PEP 8:...转载 2019-07-19 12:30:22 · 724 阅读 · 0 评论