自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 第2关:动手实现knn算法

任务描述本关任务:使用python实现knn算法,并对手写数字进行识别。相关知识为了完成本关任务,你需要掌握:1.加权投票,2.knn算法流程。数据集介绍手写数字数据集一共有1797个样本,每个样本有64个特征。每个特征的值为0-255之间的像素,我们的任务就是根据这64个特征值识别出该数字属于0-9十个类别中的哪一个。我们可以使用sklearn直接对数据进行加载,代码如下:from sklearn.datasets import load_digits #加载手写数字数据集 digi

2022-05-20 22:15:46 1206

原创 第1关:knn算法概述

*任务描述本关任务:使用python实现方法,找出目标样本最近的k个样本。相关知识为了完成本关任务,你需要掌握:1.knn算法思想,2.距离度量。knn算法思想k-近邻(k-nearest neighbor ,knn)是一种分类与回归的方法。我们这里只讨论用来分类的knn。所谓k最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最近的k个邻居来代表。knn算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性

2022-05-20 11:36:13 2659

原创 第2关:Pandas创建透视表和交叉表

任务描述本关任务:使用Pandas加载tip.csv文件中的数据集,分别用透视表和交叉表统计顾客在每种用餐时间、每个星期下的小费总和情况。相关知识透视表透视表是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上得分组建将数据分配到各个矩形区域中。在pandas中,可以通过pivot_table函数创建透视表。pivot_talbe函数的参数:DataFrame.pivot_table(self, values=None, index=No

2022-05-16 16:12:57 2681

原创 第1关:Pandas分组聚合

任务描述本关任务:使用Pandas加载drinks.csv文件中的数据,根据数据信息求每个大洲红酒消耗量的最大值与最小值的差以及啤酒消耗量的和。相关知识*分组聚合的流程主要有三步:分割步骤将DataFrame按照指定的键分割成若干组;应用步骤对每个组应用函数,通常是累计、转换或过滤函数;组合步骤将每一组的结果合并成一个输出数组。*分组通常我们将数据分成多个集合的操作称之为分组,Pandas中使用groupby()函数来实现分组操作。单列和多列分组对分组后的子集进行数值运算时,不是数

2022-05-16 15:39:33 4398

原创 第3关:Numpy迭代数组

任务描述本关任务:利用本关相关知识,将一个ndarray类型的数组,顺时针旋转90度后输出。相关知识NumPy迭代器对象numpy.nditer提供了一种灵活访问一个或者多个数组元素的方式。利用nditer对象可以实现完成访问数组中的每一个元素,这项最基本的功能,使用标准的Python迭代器接口,可以逐个访问每一个元素。In : x = np.arange(6).reshape(2, 3)In : for y in np.nditer(x):print(y, end=" ")Out:0 1

2022-05-15 16:06:03 3203

原创 第2关:Numpy高级索引

任务描述本关任务:给定一个二维数组,请以整数数组索引、布尔索引、花式索引三种方式,来获取我们需要的数组元素。相关知识NumPy 比一般的 Python 序列提供更多的索引方式。除了基本的用整数和切片的索引外,数组还有整数数组索引、布尔索引及花式索引。整数数组索引以下实例获取数组中(0,0),(1,1)和(2,0)位置处的元素。In : x = np.arange(12).reshape((4,3))In : y = x[[0, 1, 2],[0, 1, 0]]In : yOut: arra

2022-05-15 16:02:47 3569

转载 第1关:Numpy广播

任务描述本关任务:给定两个不同形状的数组,求出他们的和。相关知识广播(Broadcast)是 numpy 对不同形状(shape)的数组,进行数值计算的方式。 对数组的算术运算通常在相应的元素上进行,当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制。如图所示:广播的规则让所有输入数组都向其中形状最长的数组看齐,形状中不足的部分都通过在前面加 1 补齐;输出数组的形状是输入数组形状的各个维度上的最大值;如果输入数组的某个维度和输出数组的对应维度的长度相同,或者其长度为 1 时

2022-05-15 15:59:57 2016

原创 第5关:线性代数

任务描述本关任务:编写一个能求解线性方程的函数。相关知识为了完成本关任务,你需要掌握:1.如何使用numpy进行矩阵运算;2.点积和matmul的区别。numpy的线性代数线性代数(如矩阵乘法、矩阵分解、行列式以及其他方阵数学等)是任何数组库的重要组成部分,一般我们使用对两个二维数组相乘得到的是一个元素级的积,而不是一个矩阵点积。因此numpy提供了线性代数函数库linalg,该库包含了线性代数所需的所有功能。常用的numpy.linalg函数:函数 说明dot 矩阵乘法vdot 两个向量

2022-05-07 10:27:08 1328

原创 第4关:广播机制

务描述本关任务:利用广播机制实现Z-score标准化。相关知识为了完成本关任务,你需要掌握:什么是广播;广播的原则。什么是广播两个ndarray对象的相加、相减以及相乘都是对应元素之间的操作。import numpy as npx = np.array([[2,2,3],[1,2,3]])y = np.array([[1,1,3],[2,2,4]])print(xy)‘’’输入结果如下:[[ 2 2 9][ 2 4 12]]‘’’当两个ndarray对象的形状并不相同

2022-05-07 10:24:49 764

原创 第3关:花式索引与布尔索引

任务描述本关任务:根据本关所学知识,过滤大写字母。相关知识为了完成本关任务,你需要掌握:花式索引;布尔索引。花式索引花式索引(Fancy Indexing)是NumPy用来描述使用整型数组(这里的数组,可以是NumPy的数组,也可以是python自带的list)作为索引的术语,其意义是根据索引数组的值作为目标数组的某个轴的下标来取值。使用一维整型数组作为索引,如果被索引数组(ndarray)是一维数组,那么索引的结果就是对应位置的元素;如果被索引数组(ndarray)是二维数组,那么就是对应

2022-05-07 10:21:36 1482 2

原创 第2关:比较、掩码和布尔逻辑

*任务描述本关任务:编写一个能比较并筛选数据的程序。相关知识为了完成本关任务,你需要掌握:1. 如何对numpy进行比较运算;2. 如何使用逻辑数组。比较在许多情况下,数据集可能不完整或因无效数据的存在而受到污染。我们要基于某些准则来抽取、修改、计数或对一个数组中的值进行其他操作时,就需要掩码了。接下来将学习如何用 布尔掩码 来查看和操作数组中的值。和算术运算符一样,比较运算符在numpy中也是通过通用函数来实现的。比较运算符和其对应的通用函数如下:比较运算符 通用函数== np.equal

2022-05-07 10:18:54 1314 1

原创 第1关:堆叠操作

任务描述本关任务:根据本关所学知识,实现均值统计功能。相关知识为了完成本关任务,你需要掌握stack的操作。stackstack的意思是堆叠的意思,所谓的堆叠就是将两个ndarray对象堆叠在一起组合成一个新的ndarray对象。根据堆叠的方向不同分为hstack以及vstack两种。hstack假如你是某公司的HR,需要记录公司员工的一些基本信息。可能你现在已经记录了如下信息:工号 姓名 出生年月 联系电话1 张三 1988.12 133233323332 李四 1987.2 1596

2022-05-07 10:14:39 1077

原创 第9关:开闭区间与速写

任务描述本关任务:使用正则表达式重复速写的功能编写一个小程序,该小程序能根据需求能重复匹配字符串中多个字符,并输出内容。相关知识为了完成本关任务,你需要掌握:1.正则表达式重复基本知识;2.正则表达式开闭区间的基本知识;3.正则表达式重复速写的方法。开闭区间在实际生活中,我们经常会遇到一种场景,我们知道此处会填写什么格式,但是我们不确定填写的内容。比如说每月支出,我们知道此处一定是数字,但是不确定这个月支出了多少钱,是3位数,还是4位数,说不定这个月就花了10个亿。这时候我们可以用开区间来表

2022-04-26 22:21:26 1669

原创 第8关:重复区间

*任务描述本关任务:编写一个正则表达式的小程序,该小程序具有以下功能:1、匹配到字符串中重复出现2的数字内容,并打印出其匹配到的列表;2、匹配到字符串中重复出现4次到7次的数字内容,并打印出其匹配到的列表。相关知识为了完成本关任务,你需要掌握:1.正则表达式重复区间的表达方法;2.Python正则编程。重复到目前为止,我们只是学习了关于仅出现一次的字符串匹配,在实际开发过程中,这样肯定不能满足需求,比如要匹配电话号码,比如匹配身份证号,这些都是很多个数字组成的。如果遇到这样的情况,我们可

2022-04-26 22:20:52 1643

原创 第7关:可选字符

任务描述本关任务:使用正则表达式的方法编写一个小程序。该程序可以判断该字符串是否包含he或者she的子字符串,并输出匹配到的结果。相关知识为了完成本关任务,你需要掌握:1.正则表达式可选字符的使用方法;2.python正则表达式编程。可选字符到目前为止,我们看到的正则表达式都是在正则表达式中的字符与被搜索的字符串中的字符保持1:1的关系。不过有时,我们可能想要匹配一个单词的不同写法,比如color和colour,或者honor与honour。这个时候我们可以使用 ? 符号指定一个字符、字符

2022-04-26 22:19:34 1758

转载 第6关:任意字符

*任务描述本关任务:使用正则表达式的方法编写一个小程序。该程序可以判断该字符串是否包含(任意字符)ython的子字符串,并输出匹配到的结果。相关知识为了完成本关任务,你需要掌握:正则表达式通配符的使用;python正则表达式编程。通配符在生活中我们经常会有这么一种场景,我们记得某个人名为孙x者,就是不记得他叫孙行者,在正则表达式中针对此类场景,产生了通配符的概念,用符号.表示。它代表匹配任何单个字符,不过值得注意的是,它只能出现在方括号字符组以外。值得注意的是:.字符只有一个不能匹配的字符,

2022-04-26 22:19:00 2141

原创 第5关:字符串的开始与结束

*任务描述本关任务:使用正则表达式的方法编写一个小程序。该程序可以:1、匹配到该字符串是否以educoder开头,并输出该字符串的位置;2、匹配到该字符串是否以educoder结尾,并输出该字符串的位置。相关知识为了完成本关任务,你需要掌握:1.正则表达式字符串开始的使用方法;2.正则表达式字符串结束的使用方法。字符串的开始和结束在日常生活中,一个事情的开始与结束都是一件比较重要的事情,在字符串匹配的过程中也是如此,字符串的开始与结束式一个重要的特征。比如我们要获取判断字符串是否以pyth

2022-04-26 22:18:12 2080

原创 第4关:基础正则表达式--快捷方式

任务描述本关任务:运用正则表达式的快捷方式的表示方法,编写一个能从文本中快速匹配到任意单词和不是单词的Python小程序。相关知识为了完成本关任务,你需要掌握:1.正则表达式快捷方式的表达方式;2.正则表达式快捷方式取反的表达方式;本关来学习正则表达式的快捷方式与快捷方式取反。1.快捷方式在正则表达式的使用过程中,人们为了快捷表达与方便阅读,提取了几种普通字符组,并在正则表达式引擎中预定义了其快捷方式。如果我们想要定义单词,以目前学到的可能会使用[A-Za-z],但是,很多单词都是使用该字母

2022-04-26 22:17:36 1913

原创 第3关:基础正则表达式--区间与区间取反

任务描述本关任务:运用正则表达式的区间表示方法,编写一个能从文本中快速匹配到数字与不是数字字符的小程序。相关知识为了完成本关任务,你需要掌握:1.正则表达式区间的表达方式;2.正则表达式区间取反的表达方式。本关来学习正则表达式区间与区间取反的相关知识。1.区间有一些常见的字符组非常大,比如,我们要匹配的是任意数字,如果依照上述代码,每次我们都需要使用[0123456789] 这种方式明显很不明智,而如果要匹配从a-z的字母,我们也这样编写代码的话,肯定会让我们崩溃。为了适应这一点,正则表达

2022-04-26 22:17:00 2505

原创 第2关:基础正则表达式--字符组

任务描述本关任务:运用正则表达式的字符组表示方法,编写一个能从文本中快速匹配到python和Python的小程序。相关知识为了完成本关任务,你需要掌握:1.正则表达式的字符组的表达方式;2.Python中 re模块中获取多个匹配的使用方法。在上一个任务中,已经了解了只包含简单字母数字的正则表达式,但如果仅仅如此,那么太小瞧正则表达式的威力了。正则表达式强大的地方在于能够指定用于匹配的文本模式。本关来学习正则表达式的字符组匹配。1、获得多个匹配信息在很多常见的场景中需要进行多个匹配,比如在学生

2022-04-26 22:16:24 2465

原创 第1关:查找第一个匹配的字符串

任务描述本关任务:学会导入python的正则表达式库,使用该库方法的search方法编写一个匹配小程序。该方法能查看某个学生名字是否在此学生信息中。相关知识为了完成本关任务,你需要掌握:如何在 python 中引入正则表达式库;re库中search方法的使用。1、在Python 中使用正则表达式正可谓人生苦短,我用Python。Python有个特点就是库非常多,自然拥有正则匹配这种常见的库,并且此库已经嵌入在Python标准库中,使用起来非常方便,只需要在代码中导入re模块即可。import

2022-04-26 22:15:31 4333 2

原创 第5关:Numpy的拆分

*相关知识使用Numpy,我们可以方便的对数组进行拆分,比如使用hsplit()、vsplit()、dsplit()、split()函数等。拆分数组准备数组。import numpy as npIn: a= np.arange(9).reshape(3,3)In: aOut: array([[0, 1, 2],[3, 4, 5],[6, 7, 8]])hsplit()横向拆分。In: np.hsplit(a,3)Out:[array([[0],[3], [6]]),. arra

2022-04-25 21:33:49 1789

原创 第4关:Numpy数组的堆叠

任务描述本关的目标是,改变Numpy数组的形状。相关知识使用Numpy,我们可以方便的更改数组的形状,比如使用reshape()、ravel()、flatten()、transpose()函数等。具体的使用如下:改变数组形状reshape()import numpy as npIn: b = np.arange(24).reshape(2,3,4)In: bOut: array([[[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11]]

2022-04-25 21:33:08 2805

原创 第3关:Numpy数组的切片与索引

*相关知识一维Numpy数组的切片操作与Python列表的切片一样。下面首先来定义数字0 1 2直到8的数组,然后通过指定下标3到7来选择数组的部分元素,这实际上就是提取数组中值为3到6的元素。In: import numpy as npIn: a = np.arange(9)In: a[3:7]Out: array([3,4,5,6])同时用下标选择元素,下标范围从0到7,并且下标每次递增2,如下所示:In: a[:7:2]Out:array([0,2,4,6])也可以像Python数组

2022-04-25 21:32:17 2350

原创 第2关:Numpy数组的基本运算

任务描述本关的小目标是,学会Numpy二维数组的一些基本操作。相关知识Numpy库可以直接进行一些四则运算,快速的处理两个Numpy数组:a = np.array([[1,2,3],[4,5,6]])b = np.array([[4,5,6],[1,2,3]])向量与向量之间1.加法In:np.add(a,b) 或 a+bOut:array([[5, 7, 9],[5, 7, 9]])2.减法In:np.subtract(a,b) 或 a-bOut:array([[-3, -3,

2022-04-25 21:31:25 3503

原创 第1关:Numpy创建数组

任务描述本关的小目标是,使用 Numpy 创建一个多维数组。相关知识在 Python 中创建数组有许多的方法,这里我们使用 Numpy 中的arange方法快速的新建一个数组:import numpy as npa = np.arange(5)其中import numpy as np是指引入Numpy这个库,并取别名为np。之所以取别名,是为了代码编写的方便。a=np.arange(5)是指将数值0 1 2 3 4赋值给a这个变量,这样我们就快速的创建了一个一维数组。创建多维数组的方法是:i

2022-04-25 21:30:25 4223

原创 第8关:层次化索引

相关知识层次化索引层次化索引(hierarchical indexing)是pandas的一项重要功能,它使我们能在一个轴上拥有多个(两个以上)索引级别。请看以下例子:In[1]:data = Series(np.random.randn(10), index = [[‘a’, ‘a’, ‘a’, ‘b’, ‘b’, ‘b’, ‘c’, ‘c’, ‘d’, ‘d’ ],[1,2,3,1,2,3,1,2,2,3]])In[2]:dataOut[2]:a 1 0.1692392 0.

2022-04-24 15:55:54 1705 1

原创 第7关:数据的基本操作——去重

*相关知识duplicated()DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行。具体用法如下:In[1]: df = DataFrame({‘k1’:[‘one’]*3 + [‘two’]4, ‘k2’:[1,1,2,3,3,4,4]})In[2]: dfOut[2]:k1 k20 one 11 one 12 one 23 two 34 two 35 two 46 two 4In[3]:

2022-04-24 15:55:40 1843

原创 第6关:数据的基本操作——算术运算

相关知识算术运算(+,-,,/)DataFrame中的算术运算是df中对应位置的元素的算术运算,如果没有共同的元素,则用NaN代替。In[5]: df1 = DataFrame(np.arange(12.).reshape((3,4)),columns=list(‘abcd’))In[6]: df2 = DataFrame(np.arange(20.).reshape((4,5)),columns=list(‘abcde’))In[9]: df1+df2Out[9]:a b c d

2022-04-24 15:55:23 2110

原创 第5关:数据的基本操作——删除

相关知识删除指定轴上的项即删除Series的元素或DataFrame的某一行(列)的意思,我们可以通过对象的drop(labels, axis=0)方法实现此功能。删除Series的一个元素:In[11]: ser = Series([4.5,7.2,-5.3,3.6], index=[‘d’,‘b’,‘a’,‘c’])In[13]: ser.drop(‘c’)Out[13]:d 4.5b 7.2a -5.3dtype: float64删除DataFrame的行或列:

2022-04-24 15:55:00 2240

原创 第4关:数据的基本操作——排序

相关知识本关我们将学习处理Series和DataFrame中的数据的基本手段,我们将会探讨Pandas最为重要的一些功能。对索引进行排序Series用sort_index()按索引排序,sort_values()按值排序;DataFrame也是用sort_index()和sort_values()。In[73]: obj = Series(range(4), index=[‘d’,‘a’,‘b’,‘c’])In[74]: obj.sort_index()Out[74]:a 1b

2022-04-24 15:54:44 2246 1

原创 第3关:读取CSV格式数据

*相关知识在使用机器学习工具包对数据进行修改、探索和分析之前,我们必须先讲外部数据导入。使用Pandas导入数据比Numpy要容易。在这里我们将使用英国降雨数据,数据已下好并放在本实训的当前文件夹。读取CSVReading a csv into Pandas.如果数据集中有中文的话,最好在里面加上 encoding = ‘gbk’ ,以避免乱码问题。后面的导出数据的时候也一样。df = pd.read_csv(‘uk_rain_2014.csv’, header=0)这里我们从csv文件里导入了

2022-04-24 15:54:27 3406

原创 第2关:了解数据处理对象-DataFrame

相关知识DataFrame是一个表格型的数据结构,是以一个或多个二维块存放的数据表格(层次化索引),DataFrame既有行索引还有列索引,它有一组有序的列,每列既可以是不同类型(数值、字符串、布尔型)的数据,或者可以看做由Series组成的字典。DataFrame创建:dictionary = {‘state’:[‘0hio’,‘0hio’,‘0hio’,‘Nevada’,‘Nevada’],‘year’:[2000,2001,2002,2001,2002],‘pop’:[1.5,1.7,3.6

2022-04-24 15:54:11 4220

原创 第1关:了解数据处理对象--Series

“”“相关知识Pandas是为了解决数据分析任务而创建的,纳入了大量的库和标准数据模型,提供了高效地操作大型数据集所需的工具。对于Pandas包,在Python中常见的导入方法如下:from pandas import Series,DataFrameimport pandas as pdPandas中的数据结构Series: 一维数组,类似于Python中的基本数据结构list,区别是Series只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。就像数据库中的列数据;Data

2022-04-24 15:53:27 5139

原创 第11章--测试类

#练习 11-1:# #存储在名为city_functions.py的模块中# def city_country(city,country):# loc = f'{city},{country}'# return loc.title()# #创建一个名为test_cities.py的程序,对刚才的程序进行测试# import unittest# from city_functtions import city_country as cc# class CityTestCase

2021-12-14 19:51:17 663

原创 第10章--文件与异常

#练习 10-1:# 1# file_name = 'D:/whatever/lib/Learning_python.txt'# with open(file_name) as file:# contents = file.read() # print(contents.rstrip())# 2# file_name = 'D:/whatever/lib/Learning_python.txt'# with open(file_name) as file:# for

2021-12-14 14:47:51 1380

原创 第9章--类

#练习 9-1:# class Restaurant:# """一次模拟餐馆的简单尝试"""# def __init__(self,restaurant_name,cuisine_tpye):# """初始化餐馆的基础属性"""# self.restaurant_name = restaurant_name# self.cuisine_tpye = cuisine_tpye # def describe_resta

2021-11-27 14:10:44 158

原创 第8章--函数

#练习 8-1:def display_message(): """指出我在此章学的是什么""" print('我在本章学的是函数')display_message()#练习 8-2:def favorite_book(title): print(f'One of my favorite book is {title.title()}')favorite_book('the great gatsby')#练习 8-3:def make_shirt(size,

2021-11-17 16:48:57 194

原创 第7章--用户输入和while循环

#练习 7-1:car = input('what kind of car do you want to rent?\n')print(f'let me see if i can find you a {car}.')#练习 7-2:person = int(input('how many person have a meal?\n'))if person > 8: print('there is no empty seat')else : print('we have

2021-11-11 20:24:46 217

原创 金融计算器--麦考利久期(Macaulay_Duration)

#Macaulay_Duration(麦考利久期) #假设一张T年期债券#y为到期收益率#z为票面利率#r为当前的市场利率(贴现率)#PV(Ct)代表第t期的现金流现值#B为金融工具的面值或到期日价值(也就是账面价值)#n为到期期数 n = T*hinf = input('请输入以下数值(按下回车继续)')T = eval(input('债券年期:'))#y = eval(input('到期收益率:'))z = eval(input('息票利率:'))r = eval(i

2021-11-10 23:04:37 11035

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除