<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SorrymakerS的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SorrymakerS</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SorrymakerS]]></copyright><item><title><![CDATA[第2关：动手实现knn算法]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124880399</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124880399</guid><author>SorrymakerS</author><pubDate>Fri, 20 May 2022 22:15:46 +0800</pubDate><description><![CDATA[任务描述
本关任务：使用python实现knn算法，并对手写数字进行识别。
相关知识
为了完成本关任务，你需要掌握：1.加权投票，2.knn算法流程。
数据集介绍
手写数字数据集一共有1797个样本，每个样本有64个特征。每个特征的值为0-255之间的像素，我们的任务就是根据这64个特征值识别出该数字属于0-9十个类别中的哪一个。
我们可以使用sklearn直接对数据进行加载，代码如下：
from sklearn.datasets import load_digits  
#加载手写数字数据集  
digi]]></description><category></category></item><item><title><![CDATA[第1关：knn算法概述]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124880270</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124880270</guid><author>SorrymakerS</author><pubDate>Fri, 20 May 2022 11:36:13 +0800</pubDate><description><![CDATA[*任务描述
本关任务：使用python实现方法，找出目标样本最近的k个样本。
相关知识
为了完成本关任务，你需要掌握：1.knn算法思想，2.距离度量。
knn算法思想
k-近邻（k-nearest neighbor ,knn）是一种分类与回归的方法。我们这里只讨论用来分类的knn。所谓k最近邻，就是k个最近的邻居的意思，说的是每个样本都可以用它最近的k个邻居来代表。
knn算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别，则该样本也属于这个类别，并具有这个类别上样本的特性]]></description><category></category></item><item><title><![CDATA[第2关：Pandas创建透视表和交叉表]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124801132</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124801132</guid><author>SorrymakerS</author><pubDate>Mon, 16 May 2022 16:12:57 +0800</pubDate><description><![CDATA[任务描述
本关任务：使用Pandas加载tip.csv文件中的数据集，分别用透视表和交叉表统计顾客在每种用餐时间、每个星期下的小费总和情况。
相关知识
透视表
透视表是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合，并根据行和列上得分组建将数据分配到各个矩形区域中。在pandas中，可以通过pivot_table函数创建透视表。
pivot_talbe函数的参数：
DataFrame.pivot_table(self, values=None, index=No]]></description><category></category></item><item><title><![CDATA[第1关：Pandas分组聚合]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124800377</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124800377</guid><author>SorrymakerS</author><pubDate>Mon, 16 May 2022 15:39:33 +0800</pubDate><description><![CDATA[任务描述
本关任务：使用Pandas加载drinks.csv文件中的数据，根据数据信息求每个大洲红酒消耗量的最大值与最小值的差以及啤酒消耗量的和。
相关知识
*分组聚合的流程主要有三步：

分割步骤将DataFrame按照指定的键分割成若干组；
应用步骤对每个组应用函数，通常是累计、转换或过滤函数；
组合步骤将每一组的结果合并成一个输出数组。*


分组
通常我们将数据分成多个集合的操作称之为分组，Pandas中使用groupby()函数来实现分组操作。
单列和多列分组
对分组后的子集进行数值运算时，不是数]]></description><category></category></item><item><title><![CDATA[第3关：Numpy迭代数组]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124783513</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124783513</guid><author>SorrymakerS</author><pubDate>Sun, 15 May 2022 16:06:03 +0800</pubDate><description><![CDATA[任务描述
本关任务：利用本关相关知识，将一个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 ]]></description><category></category></item><item><title><![CDATA[第2关：Numpy高级索引]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124783458</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124783458</guid><author>SorrymakerS</author><pubDate>Sun, 15 May 2022 16:02:47 +0800</pubDate><description><![CDATA[任务描述
本关任务：给定一个二维数组，请以整数数组索引、布尔索引、花式索引三种方式，来获取我们需要的数组元素。
相关知识
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 : y
Out: arra]]></description><category></category></item><item><title><![CDATA[第1关：Numpy广播]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124783433</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124783433</guid><author>SorrymakerS</author><pubDate>Sun, 15 May 2022 15:59:57 +0800</pubDate><description><![CDATA[任务描述
本关任务：给定两个不同形状的数组，求出他们的和。
相关知识
广播(Broadcast)是 numpy 对不同形状(shape)的数组，进行数值计算的方式。 对数组的算术运算通常在相应的元素上进行，当运算中的 2 个数组的形状不同时，numpy 将自动触发广播机制。
如图所示：
广播的规则
让所有输入数组都向其中形状最长的数组看齐，形状中不足的部分都通过在前面加 1 补齐；
输出数组的形状是输入数组形状的各个维度上的最大值；
如果输入数组的某个维度和输出数组的对应维度的长度相同，或者其长度为 1 时]]></description><category></category></item><item><title><![CDATA[第5关：线性代数]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625429</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625429</guid><author>SorrymakerS</author><pubDate>Sat, 07 May 2022 10:27:08 +0800</pubDate><description><![CDATA[任务描述
本关任务：编写一个能求解线性方程的函数。
相关知识
为了完成本关任务，你需要掌握：1.如何使用numpy进行矩阵运算；2.点积和matmul的区别。
numpy的线性代数
线性代数（如矩阵乘法、矩阵分解、行列式以及其他方阵数学等）是任何数组库的重要组成部分，一般我们使用对两个二维数组相乘得到的是一个元素级的积，而不是一个矩阵点积。因此numpy提供了线性代数函数库linalg，该库包含了线性代数所需的所有功能。
常用的numpy.linalg函数：
函数	说明
dot	矩阵乘法
vdot	两个向量]]></description><category></category></item><item><title><![CDATA[第4关：广播机制]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625319</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625319</guid><author>SorrymakerS</author><pubDate>Sat, 07 May 2022 10:24:49 +0800</pubDate><description><![CDATA[务描述
本关任务：利用广播机制实现Z-score标准化。
相关知识
为了完成本关任务，你需要掌握：
什么是广播；
广播的原则。
什么是广播
两个ndarray对象的相加、相减以及相乘都是对应元素之间的操作。
import numpy as np
x = 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对象的形状并不相同]]></description><category></category></item><item><title><![CDATA[第3关：花式索引与布尔索引]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625244</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625244</guid><author>SorrymakerS</author><pubDate>Sat, 07 May 2022 10:21:36 +0800</pubDate><description><![CDATA[任务描述
本关任务：根据本关所学知识，过滤大写字母。
相关知识
为了完成本关任务，你需要掌握：
花式索引；
布尔索引。
花式索引
花式索引（Fancy Indexing）是NumPy用来描述使用整型数组（这里的数组，可以是NumPy的数组，也可以是python自带的list）作为索引的术语，其意义是根据索引数组的值作为目标数组的某个轴的下标来取值。
使用一维整型数组作为索引，如果被索引数组(ndarray)是一维数组，那么索引的结果就是对应位置的元素；如果被索引数组(ndarray)是二维数组，那么就是对应]]></description><category></category></item><item><title><![CDATA[第2关：比较、掩码和布尔逻辑]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625120</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625120</guid><author>SorrymakerS</author><pubDate>Sat, 07 May 2022 10:18:54 +0800</pubDate><description><![CDATA[*任务描述
本关任务：编写一个能比较并筛选数据的程序。
相关知识
为了完成本关任务，你需要掌握：1. 如何对numpy进行比较运算；2. 如何使用逻辑数组。
比较
在许多情况下，数据集可能不完整或因无效数据的存在而受到污染。我们要基于某些准则来抽取、修改、计数或对一个数组中的值进行其他操作时，就需要掩码了。接下来将学习如何用 布尔掩码 来查看和操作数组中的值。
和算术运算符一样，比较运算符在numpy中也是通过通用函数来实现的。比较运算符和其对应的通用函数如下：
比较运算符	通用函数
==	np.equal]]></description><category></category></item><item><title><![CDATA[第1关：堆叠操作]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625020</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124625020</guid><author>SorrymakerS</author><pubDate>Sat, 07 May 2022 10:14:39 +0800</pubDate><description><![CDATA[任务描述
本关任务：根据本关所学知识，实现均值统计功能。
相关知识
为了完成本关任务，你需要掌握stack的操作。
stack
stack的意思是堆叠的意思，所谓的堆叠就是将两个ndarray对象堆叠在一起组合成一个新的ndarray对象。根据堆叠的方向不同分为hstack以及vstack两种。
hstack
假如你是某公司的HR，需要记录公司员工的一些基本信息。可能你现在已经记录了如下信息：
工号	姓名	出生年月	联系电话
1	张三	1988.12	13323332333
2	李四	1987.2	1596]]></description><category></category></item><item><title><![CDATA[第9关：开闭区间与速写]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438879</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438879</guid><author>SorrymakerS</author><pubDate>Tue, 26 Apr 2022 22:21:26 +0800</pubDate><description><![CDATA[任务描述
本关任务：使用正则表达式重复速写的功能编写一个小程序，该小程序能根据需求能重复匹配字符串中多个字符，并输出内容。
相关知识
为了完成本关任务，你需要掌握：
1.正则表达式重复基本知识；
2.正则表达式开闭区间的基本知识；
3.正则表达式重复速写的方法。
开闭区间
在实际生活中，我们经常会遇到一种场景，我们知道此处会填写什么格式，但是我们不确定填写的内容。比如说每月支出，我们知道此处一定是数字，但是不确定这个月支出了多少钱，是3位数，还是4位数，说不定这个月就花了10个亿。这时候我们可以用开区间来表]]></description><category></category></item><item><title><![CDATA[第8关：重复区间]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438869</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438869</guid><author>SorrymakerS</author><pubDate>Tue, 26 Apr 2022 22:20:52 +0800</pubDate><description><![CDATA[*任务描述
本关任务：编写一个正则表达式的小程序，该小程序具有以下功能：
1、匹配到字符串中重复出现2的数字内容，并打印出其匹配到的列表；
2、匹配到字符串中重复出现4次到7次的数字内容，并打印出其匹配到的列表。
相关知识
为了完成本关任务，你需要掌握：
1.正则表达式重复区间的表达方法；
2.Python正则编程。
重复
到目前为止，我们只是学习了关于仅出现一次的字符串匹配，在实际开发过程中，这样肯定不能满足需求，比如要匹配电话号码，比如匹配身份证号，这些都是很多个数字组成的。
如果遇到这样的情况，我们可]]></description><category></category></item><item><title><![CDATA[第7关：可选字符]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438848</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438848</guid><author>SorrymakerS</author><pubDate>Tue, 26 Apr 2022 22:19:34 +0800</pubDate><description><![CDATA[任务描述
本关任务：使用正则表达式的方法编写一个小程序。该程序可以判断该字符串是否包含he或者she的子字符串，并输出匹配到的结果。
相关知识
为了完成本关任务，你需要掌握：
1.正则表达式可选字符的使用方法；
2.python正则表达式编程。
可选字符
到目前为止，我们看到的正则表达式都是在正则表达式中的字符与被搜索的字符串中的字符保持1:1的关系。
不过有时，我们可能想要匹配一个单词的不同写法，比如color和colour，或者honor与honour。
这个时候我们可以使用 ? 符号指定一个字符、字符]]></description><category></category></item><item><title><![CDATA[第6关：任意字符]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438834</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438834</guid><author>SorrymakerS</author><pubDate>Tue, 26 Apr 2022 22:19:00 +0800</pubDate><description><![CDATA[*任务描述
本关任务：使用正则表达式的方法编写一个小程序。该程序可以判断该字符串是否包含(任意字符)ython的子字符串，并输出匹配到的结果。
相关知识
为了完成本关任务，你需要掌握：
正则表达式通配符的使用；
python正则表达式编程。
通配符
在生活中我们经常会有这么一种场景，我们记得某个人名为孙x者，就是不记得他叫孙行者，在正则表达式中针对此类场景，产生了通配符的概念，用符号.表示。它代表匹配任何单个字符，不过值得注意的是，它只能出现在方括号字符组以外。
值得注意的是：.字符只有一个不能匹配的字符，]]></description><category></category></item><item><title><![CDATA[第5关：字符串的开始与结束]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438820</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438820</guid><author>SorrymakerS</author><pubDate>Tue, 26 Apr 2022 22:18:12 +0800</pubDate><description><![CDATA[*任务描述
本关任务：使用正则表达式的方法编写一个小程序。该程序可以：
1、匹配到该字符串是否以educoder开头，并输出该字符串的位置；
2、匹配到该字符串是否以educoder结尾，并输出该字符串的位置。
相关知识
为了完成本关任务，你需要掌握：
1.正则表达式字符串开始的使用方法；
2.正则表达式字符串结束的使用方法。
字符串的开始和结束
在日常生活中，一个事情的开始与结束都是一件比较重要的事情，在字符串匹配的过程中也是如此，字符串的开始与结束式一个重要的特征。比如我们要获取判断字符串是否以pyth]]></description><category></category></item><item><title><![CDATA[第4关：基础正则表达式--快捷方式]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438806</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438806</guid><author>SorrymakerS</author><pubDate>Tue, 26 Apr 2022 22:17:36 +0800</pubDate><description><![CDATA[任务描述
本关任务：运用正则表达式的快捷方式的表示方法，编写一个能从文本中快速匹配到任意单词和不是单词的Python小程序。
相关知识
为了完成本关任务，你需要掌握：
1.正则表达式快捷方式的表达方式；
2.正则表达式快捷方式取反的表达方式；
本关来学习正则表达式的快捷方式与快捷方式取反。
1.快捷方式
在正则表达式的使用过程中，人们为了快捷表达与方便阅读，提取了几种普通字符组，并在正则表达式引擎中预定义了其快捷方式。如果我们想要定义单词，以目前学到的可能会使用[A-Za-z]，但是，很多单词都是使用该字母]]></description><category></category></item><item><title><![CDATA[第3关：基础正则表达式--区间与区间取反]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438793</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438793</guid><author>SorrymakerS</author><pubDate>Tue, 26 Apr 2022 22:17:00 +0800</pubDate><description><![CDATA[任务描述
本关任务：运用正则表达式的区间表示方法，编写一个能从文本中快速匹配到数字与不是数字字符的小程序。
相关知识
为了完成本关任务，你需要掌握：
1.正则表达式区间的表达方式；
2.正则表达式区间取反的表达方式。
本关来学习正则表达式区间与区间取反的相关知识。
1.区间
有一些常见的字符组非常大，比如，我们要匹配的是任意数字，如果依照上述代码，每次我们都需要使用[0123456789] 这种方式明显很不明智，而如果要匹配从a-z的字母，我们也这样编写代码的话，肯定会让我们崩溃。
为了适应这一点，正则表达]]></description><category></category></item><item><title><![CDATA[第2关：基础正则表达式--字符组]]></title><link>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438779</link><guid>https://blog.youkuaiyun.com/SorrymakerS/article/details/124438779</guid><author>SorrymakerS</author><pubDate>Tue, 26 Apr 2022 22:16:24 +0800</pubDate><description><![CDATA[任务描述
本关任务：运用正则表达式的字符组表示方法，编写一个能从文本中快速匹配到python和Python的小程序。
相关知识
为了完成本关任务，你需要掌握：
1.正则表达式的字符组的表达方式；
2.Python中 re模块中获取多个匹配的使用方法。
在上一个任务中，已经了解了只包含简单字母数字的正则表达式，但如果仅仅如此，那么太小瞧正则表达式的威力了。正则表达式强大的地方在于能够指定用于匹配的文本模式。本关来学习正则表达式的字符组匹配。
1、获得多个匹配信息
在很多常见的场景中需要进行多个匹配，比如在学生]]></description><category></category></item></channel></rss>