![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
Killwaiter
这个作者很懒,什么都没留下…
展开
-
(100天2小时第二十九天)matlab基本命令
1.图像的读取 如果文件和图片地址在一个文件夹下面I = imread('tu1.jpg');2.图像的写入imwrite(I,'filename')3.图像的显示I=imread('tu1.jpg');imshow(I)4.关闭图形窗口 close()函数5.同时显示多幅图像I=imread('tu3.jpg');J=imread('tu2.jpg');figure;subplot(1,2,1),imshow(I);title...原创 2020-11-23 17:07:55 · 135 阅读 · 0 评论 -
(100天2小时第二十九天)数字图像处理的基本步骤
数字图像处理划分为两个类别:一类输入输出都是图像。一类是输入可能是图像,输出是图像中提取的属性。1.图像获取:图像获取是图像处理的第一步处理,图像获取与给出一幅数字形式的图像一样简单。通常,图像获取阶段包括图像预处理,譬如图像缩放。2.图像增强:是对一幅图像进行操作,使其结果在特定应用中比原始图像更适合进行处理。“特定”一词很重要,因为技术增强建立在面向问题的基础上。图像增强包括平滑和锐化。3.图像复原:是改进图像外观的处理领域,与图像增强不同,图像增强是主观的,图像复原是客观的。图像复原倾向于原创 2020-11-23 10:44:41 · 2353 阅读 · 0 评论 -
(100天2小时第二十八天)图像处理基础
一、图像灰度化基本原理:灰度化,在RGB模型中,如果R+G+B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。因此,灰度图像每个像素只需要一个字节存放灰度值(又称强度值、亮度值),灰度范围为0~255。一般有分量法、最大值法、平均值法、加权平均法四种方法对彩色图像进行灰度化。图像灰度处理可以作为图像处理的预处理步骤,为之后的图像分割、图像识别和图像分析等上层操作做准备。在数字图像处理中一般先将各种样式的图像转变为灰度图像以使后续的图像的计算量变的少一些。灰度图像的描述与彩色图像一样仍然反映了整原创 2020-11-22 21:52:14 · 153 阅读 · 0 评论 -
(100天2小时第二十四天)重塑数据集、清理数据集
一、重塑数据集1、旋转数据(1)重塑索引、分为stack(将数据的列旋转为行)和unstack(将数据的行旋转为列)。(2)将‘长格式’旋转为‘宽格式’2.转换数据(1)数据替换,将某一值或多个值用新的值进行代替。(比较常用的是缺失值或异常值处理,缺失值一般都用NULL、NAN标记,可以用新的值代替缺失标记值)。方法是replace。data=pd.Series([1,-999,2,-999,-1000,3])print(data)print(data.replace(-999原创 2020-11-18 19:51:38 · 288 阅读 · 0 评论 -
(100天2小时第二十四天)数据整理—合并数据集
一、数据库风格的合并df1=pd.DataFrame({'key':['b','b','a','c','a','a','b'],'data1':range(7)})print(df1)df2=pd.DataFrame({'key':['a','b','d'],'data2':range(3)})print(df2)print(pd.merge(df1,df2))#数据合并 key data10 b 01 b 12 a 23 c原创 2020-11-18 17:20:36 · 151 阅读 · 0 评论 -
(100天2小时第二十三天)几种简单填充缺失值的方法
一、固定值填充df1['Age']=df1['Age'].fillna(20)print(df1.isnull().sum())#输出时该项已经无缺失值二、均值填充# 数据需是int或float类型df['Age'] = df['Age'].fillna(df['Age'] .mean())三、众数填充# 数据需是int或float类型df['Age'] = df['Age'].fillna(df['Age'] .mode()) 四、上下数据填充# 用前一个非缺原创 2020-11-17 19:37:43 · 341 阅读 · 0 评论 -
(100天2小时第二十三天)python数据分析画图
怎么画出柱状图、饼状图、折线图,以及如何添加标题及图例一、柱状图:sns.countplot()函数,以bar的形式展示每个类别的数量plt.figure(figsize = (10,5)) # 创建画布plt.subplot(121) # 添加第一个子图sns.countplot(x='Survived',data=df)plt.title('Survived count') 二、饼状图(pie)total_survived = df['Survived'].sum..原创 2020-11-17 17:53:24 · 167 阅读 · 0 评论 -
(100天2小时第二十二天)读取csv、保存csv文件,缺失值处理
一、给你一个csv文件,怎么用pandas读取,怎么保存csv文件? 1.若文件名为:train.csv 2.读取数据:pd.read_csv('train.csv') 保存数据: (1)在Excel 中打开需要存为csv的文件 (2)在文件上方的菜单栏中选择文件选项的另存为,在弹出的选项中选择并点击“其他格式”选项按扭,进入下一页面。 (3)在存储文件类型的选项栏中选择“CVS”类型,如下图所示,选好后点击保存。 ...原创 2020-11-16 20:17:08 · 2087 阅读 · 0 评论 -
(100天2小时第二十二天)实例分析:泰坦尼克号数据分析
案例分析:利用pandas来做一个实际案例分析。背景:船要沉了,我们根据各种影响因素,判断什么因素对船上成员的存活率影响较大。先下载训练集名为train.csv,把该文件与程序文件放在同一个文件夹下。1.导包:import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns2.导入文件f=pd.read_csv('train.csv')print(df)pr原创 2020-11-16 17:18:32 · 309 阅读 · 1 评论 -
(100天2小时第二十一天)一周总结numpy和pandas
原创 2020-11-15 16:23:19 · 94 阅读 · 1 评论 -
(100天2小时第十八天)Pandas入门
一、导入库from pandas import Series,DataFrameimport pandas as pd二、创建Series取索引Series对象有loc和iloc成员变量,如下图所示:loc的数据类型为pandas.core.indexing,_LocIndexer,iloc的数据类型为pandas.core.indexing,_iLocIndexer,用loc进行索引时,中括号[ ]中的值必须是索引的真实值;用iloc进行索引时,中括号[ ]中的值必须是整数,与列表原创 2020-11-12 21:37:08 · 781 阅读 · 0 评论 -
(100天2小时第十七天)索引
我们前面学过了numpy普通的python方式的索引和切片,现在学习整数数组或布尔数组索引。一、数组索引a = np.arange(12) ** 2print(a)i = np.array([1,1,3,8,5])print(i)print(a[i])# 返回a中再索引i的元素j = np.array([[3, 4], [9, 7]])print(j)[ 0 1 4 9 16 25 36 49 64 81 100 121][1 1 3 8 5][ 1原创 2020-11-11 17:05:18 · 153 阅读 · 2 评论 -
(100天2小时第十七天)广播机制
属于广播主要描述于numpy对于不同shape的数组如何进行算术运算。受限于一些特定约束。一般都是小的数组扩展为大的数组,以便能计算。1.通常情况下,numpy操作的数组必须是相同shape的。a = np.array([1.0, 2.0, 3.0])b = np.array([2.0, 2.0, 2.0])print(a * b)[2. 4. 6.]2.当数组的shape满足某些特定约束时,numpy的广播机制可以使这个约束更宽松。最简单的就是广播例子就是当数组和一个标量操作时原创 2020-11-11 15:54:49 · 238 阅读 · 0 评论 -
(100天2小时第十六天)复制和视图(Views)
一.不复制import numpy as npa = np.arange(12)print(a)b=a #不会有新对象产生print(b is a)print(b.shape)b.shape = 3, 4 #改变b的shape,a也同样变化print(a.shape)print(a)[ 0 1 2 3 4 5 6 7 8 9 10 11]True(12,)(3, 4)[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]原创 2020-11-10 17:41:50 · 146 阅读 · 1 评论 -
(100天2小时第十六天)shape操作、数组合并、数组切割
一、改变数组的shape1.许多函数都可以改变数组的shape,但是它们都是返回一个新的修改后的数组,并不会改变原数组。a = np.floor(10*np.random.random((3,4)))print(a)print(a.ravel())# 返回降维的数组print(a.reshape(6,2))# 直接修改shapeprint(a.T)# 数组转置print(a.T.shape)print(a.shape) floor(x),也写做Floor(x),其功能是“向下.原创 2020-11-10 13:38:41 · 345 阅读 · 0 评论 -
(100天2小时第十六天)numpy数组——索引,切片和迭代
一、通用函数B = np.arange(3)print(B)print(np.exp(B))print(2.71828183 * 2.71828183)print(np.sqrt(B))C = np.array([2., -1., 4.])print(np.add(B, C))二、索引,切片和迭代一维数组的索引,切片,迭代跟普通的python列表一样a = np.arange(10) ** 3print(a)print(a[2])print(a[2:5])prin原创 2020-11-10 10:22:33 · 185 阅读 · 1 评论 -
(100天2小时第十五天)numpy数组的基本运算
一.基本操作1.数组的算术运算会自动作用于每个元素,并返回一个新的数组。 +号a = np.array([20,30,40,50])b = np.arange(4)#默认0,1,2,3c = a - bprint(c)print(b*2)print(np.sin(a))print(10 * np.sin(a))print(a < 35)*号,*返回的是每个元素相乘的结果,要实现矩阵乘法,需要使用dot函数a = np.array([[1, 1], ..原创 2020-11-09 18:18:33 · 358 阅读 · 0 评论 -
(100天2小时第十五天)numpy数组
一.安装numpy包,安装成功后检测:import numpy as npprint(np.version.version)二.基础数组例子Numpy中,维度被称作axes, 维度数被称作rank。Numpy的数组类是ndarray, 与标准python库的数组不太一样,它包含的元素必须是相同类型的。ndarray的常见属性如下:ndarray.ndim数组的轴数(即rank) ndarray.shape数组的维度,返回的是一个元组,元组的长度值刚好是ndim nda..原创 2020-11-09 16:42:13 · 153 阅读 · 1 评论 -
(100天2小时第十四天)请求web api:requests
一、安装requests在pycharm中File——>Settings——>点右边+——>输入requests——>点左下安装查看安装是否成功:import requestsr=requests.get("http://www.baidu.com")print(r.status_code)print(r.text)运行出来证明安装成功!二、几种请求类型 ①get请求:requests.get('url') ②post请求:...原创 2020-11-08 12:42:10 · 80 阅读 · 0 评论 -
(100天2小时第十一天)正则模块re(3)元字符之转义符\
元字符之转义符\1.反斜杠后边跟元字符去除特殊功能:\d 匹配任何十进制数;它相当于类 [0-9]。\D 匹配任何非数字字符;它相当于类 [^0-9]。\s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。\S 匹配任何非空白字符;它相当于类 [^ \t\n\r\f\v]。\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]\b 匹配一个特殊字符边界,比如空格 ,&,#等ret=...原创 2020-11-05 15:43:13 · 224 阅读 · 0 评论 -
(100天2小时第十一天)正则模块 re(2). ^ $ * + ? { }
字符匹配:1.普通字符 2.元字符:. ^ $ * + ? { } [ ] | ( ) \1. .是一个通配符,一个点代表一个字符s = re.findall("a...x","adsfaeyuxslg")print(s)s = re.findall("a..x","adsxaeyxslg")print(s)2.^这个代表以什么开头,^a,代表以a开头,a必须是字符串的第一个字母s = re.findall("^a..x","adsfaeuxslg")print(s)s .原创 2020-11-05 14:31:52 · 146 阅读 · 0 评论 -
(100天2小时第十天)正则模块 re
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能。1.re.match函数函数语法:re.match(pattern, string, flags=0)函数参数说明: 参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串。 flags原创 2020-11-04 19:46:21 · 190 阅读 · 0 评论 -
(100天2小时第九天)json模块
1.json是一种轻量级的数据交换格式。它包含了两个函数:json.dumps():对数据进行编码。 json.loads():对数据进行解码。import json# Python 字典类型转换为 JSON 对象data1 = { 'no': 1, 'name': 'Runoob', 'url': 'http://www.runoob.com'}json_str = json.dumps(data1)#编码print("Python 原始数据:"..原创 2020-11-03 21:00:58 · 244 阅读 · 1 评论 -
(100天两小时第九天)random模块、sys模块、os模块
一、random模块1.random()方法返回随机生成的一个实数,它在[0,1)范围内。random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法:import randomprint(random.random())#生成0-1之间的浮点数import randomprint(random.random())#生成0-1之间的浮点数print(random.randint(1,3))#随机生成传入参数范围内的一个整数p...原创 2020-11-03 19:55:06 · 1993 阅读 · 0 评论 -
(100天2小时第九天)datetime模块
datetime 比 time 高级了不少,可以理解为 datetime 基于 time 进行了封装,提供了更多实用的函数。在datetime 模块中包含了几个类,具体关系如下:1.timedelta # 主要用于计算时间跨度2.datetime # 同时有时间和日期在实际实用中,用得比较多的是 datetime.datetime 和 datetime.timedelta 。 下面主要讲讲 datetime.datetime 的使用:使用datetime.datetime.now()可以..原创 2020-11-03 16:26:17 · 183 阅读 · 1 评论 -
(100天2小时第八天)python 常用的内置模块——日期和时间
Python 提供了一个time 和 calendar 模块可以用于格式化日期和时间。一、time模块:1.在Python中,通常有这几种方式来表示时间:时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。 格式化的时间字符串 元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中...原创 2020-11-02 21:06:57 · 182 阅读 · 0 评论 -
(100天2小时第五天)python内置函数(4)
1.range() 函数用法:可创建一个整数列表,一般用在 for 循环中。语法:range(start, stop[, step])start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)可以从0~-10 从大到小原创 2020-10-30 16:03:49 · 122 阅读 · 0 评论 -
(100天2小时第五天)Python 内置函数(3)
1.List list()方法list() 方法用于将元组转换为列表。注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。语法:list( tup ) tup是元组,将其转化为列表。aTuple = (123, 'xyz', 'zara', 'abc')print(aTuple)print(list(aTuple))#讲列表转化为元组2.Tuple(元组) tuple()方法:将列表转换为元组。语法:tuple( iter...原创 2020-10-30 15:40:07 · 98 阅读 · 0 评论 -
(100天2小时第五天)python内置函数(2)
1.enumerate() 函数 enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。语法:enumerate(sequence, [start=0]) #start代表下标起始位置seasons = ['Spring', 'Summer', 'Fall', 'Winter']print(*(enumerate(seasons))) #前面加*也可以print(list(enumerat...原创 2020-10-30 15:19:06 · 117 阅读 · 0 评论 -
(100天2小时第五天)Python 内置函数(1)
一、sum 求和函数1. 语法:sum(iterable[, start])iterable -- 可迭代对象,如:列表、元组、集合。 start -- 指定相加的参数,如果没有设置这个值,默认为0。2.注意:迭代对象需要{},[],()括起来3.没有括起来会报错print(sum(1,2,3))4.括起来的情况。print(sum((1,2,3)))print(sum([3,4,5]))print(sum({6,7,8}))print(sum((2...原创 2020-10-30 14:47:41 · 123 阅读 · 0 评论 -
(100天2小时第四天)类属性与方法
私有:前面加下划线来代表私有类的私有属性:__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时self.__private_attrs。类的方法:在类的内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数类的私有方法:__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用。在类的内部调用self.__private_methods...原创 2020-10-29 20:31:32 · 136 阅读 · 0 评论 -
(100天2小时第四天)方法重写和运算符重载
一、方法重写如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法。class Parent: # 定义父类 def myMethod(self): print('调用父类方法')class Child(Parent): # 定义子类 def myMethod(self): print('调用子类方法')c = Child() # 子类实例c.myMethod() # 子类调用重原创 2020-10-29 19:59:25 · 159 阅读 · 0 评论 -
(100天2小时第四天)_init_()方法的作用
一、为什么一定要定义_init_()方法,先来看看定义和不定义的区别:1.c是C的实例化对象,如果有_init_()方法先调用C的。class A: def __init__(self): print("math")class B: def __init__(self): print("hello")class C(A,B): def __init__(self): print("world") def get(s原创 2020-10-29 19:34:33 · 424 阅读 · 0 评论 -
(100天2小时第四天)类的继承
一、通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。在python中继承中的一些特点:1、如果在子类中需要父类的构造方法就需要显式的调用父类的构造方法,或者不重写父类的构造方法。 2、在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别在于类中调用普通函数时并不需要带上 self 参数 3、Python 总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去父类中找)。如果原创 2020-10-29 19:10:53 · 107 阅读 · 0 评论 -
(100天2小时第三天)python对象销毁(垃圾回收)
Python 使用了引用计数这一简单技术来跟踪和回收垃圾。在 Python 内部记录着所有使用中的对象各有多少引用。一个内部跟踪变量,称为一个引用计数器。当对象被创建时, 就创建了一个引用计数, 当这个对象不再需要时, 也就是说, 这个对象的引用计数变为0 时, 它被垃圾回收。但是回收不是"立即"的, 由解释器在适当的时机,将垃圾对象占用的内存空间回收。a=40b=ac=[b]del a #a不需要,删除aprint(b) #删除a后不影响b和cprint(c)...原创 2020-10-28 20:49:16 · 378 阅读 · 4 评论 -
(100天2小时第三天)实例
class Test: def prt(self): print(self) #self代表的是类的实例,代表当前的对象的地址 print(self.__class__) #self.__class_则指向类t = Test()t.prt()1.创建实例对象class Employee: '所有员工的基类' empCount=0 def __init__(self,name,salary): sel..原创 2020-10-28 20:07:19 · 158 阅读 · 0 评论 -
(100天2小时第三天)字典的遍历
1.在字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来:t={'a':1,'b':2,'c':3}for k,v in t.items(): print(k,v)2.在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到:t={'a':1,'b':2,'c':3}for i,v in enumerate(['a','b','c']): print(i,v)3.同时遍历两个或更多的序列,可以使用 zi...原创 2020-10-28 16:35:14 · 74 阅读 · 0 评论 -
(100天2小时第三天)字典
序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。创建一个空的字典:{}。创建一个空集合:{} 集合可以用{}和(),但空集合必须用()tel={'a':1,'b':2,'c':3}tel['d'] = 4 #插入键值对print(tel)print(tel['a'])del(tel['a']) #删除pri...原创 2020-10-28 16:13:51 · 100 阅读 · 0 评论 -
(100天2小时第三天)Set集合
Set集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。s={1,1,2,3,4,5,5,}print(s) #消除重复元素print(1 in s) #测试功能print(8 in s)集合也支持推导式a={x for x in 'abcdabcrabaabc' if x not in 'abc'}print(a)...原创 2020-10-28 15:54:28 · 82 阅读 · 0 评论 -
(100天2小时第三天)元组和序列
元组由若干逗号分隔的值组成。t=1,2,3,4 #元组也可以不加括号t=(12345,34567,'hello')print(t)u=t,(1,2,3,4,5)#可以这样复制,列表也可以print(u)v1=[2,4,6]v2=v1,[34,45]print(v2)原创 2020-10-28 15:39:09 · 55 阅读 · 0 评论