博文

目前显示的是 十月, 2019的博文

日常机器学习(十六)Matplotlib子图操作

图片
在matplotlib中可以使用add_subplot函数进行同一画布中插入不同的图像。 可以在plt.figure()函数中使用figsize=(a,b)函数来自定义每幅画的大小。a表示长度,b表示宽度。 在subplot中,先定义每个子图的位置,然后用画图函数插入想要画的图像 这里值得一提的是randint(1,5,5)函数,该函数随机生成5个1-(5-1)之间的整数。 在同一张图中也可以画两条折线图 其中输入参数c = "color" 可以指定该图像的颜色 若要在图上加注释,对每一条折线加说明的话,在参数输入里加入label 并在plot后面加plt.lengnd(loc = "best")函数 plt.legend() 中的loc="best"表示自动寻找最佳位置,其他位置可以用print(help(plt.legend))函数自行查找

日常机器学习(十五)Matplotlib折线图

图片
这篇介绍一下关于python的可视化matplotlib包 也可以用xticks(rotation=degree)使得横坐标旋转一定的角度 还可以添加横坐标和纵坐标的名字,并且添加标题

日常机器学习(十四)pandas-series结构

图片
pandas中既有dataFrame格式,又有series结构。dataFrame相当于多个series的结合,每一列的变量都是一个series。首先在pandas中import一个series。这时候可以用series函数把他们组成一个新的dataFrame。 series相当于由一列index和一列values组成。 新的series可以进行sorted排序 可以看出来用reindex函数可以重新用排序index。 series也可以和numpy结合使用。

日常机器学习(十三)pandas常用函数

图片
pandas中的 mean() 函数可以不带缺失值进行求均值。下面是读取进来的数据 然后我用了两种方法去求 salary 中的均值。第一种是先去除 salary 中的 NaN 数值,然后对剩下的值进行求均值。第二种方法是直接调用pandas中的 mean() 函数求得均值。两种方法得到的结果相同。 在pandas中也可以按照某个指标统计数据。首先在原有数据上加上性别这一栏数据,然后对性别这一栏数据分别对male和female进行数据统计。下面的代码是关于如何在原数据上添加列,并对某一变量进行函数分析的例子。 这里主要用到pivot函数 当aggfunc不填入时,默认为求平均值。同样也可以同时对多项进行统计。 pandas中的dropna函数可以指定某一列(axis=1)或者某一行(axis=0)进行有关na数据的删除。 pandas中的loc函数可以查看某一样本的某一属性值 值得注意的是这里用的是方括号,而不是圆括号。 在panads中sort_values函数可以对数据中的某一项变量进行排序: 可以看到第一列的默认的index值混杂了。我们可以用reset_index函数得到新的index pandas可以用自定义函数。可以用apply去调用 使用def函数也可以对某一列的值进行数据替换,加上(axis=1)

日常机器学习(十二)pandas数据处理

图片
在pandas中可以进行一些基本加减乘除的操作,理论上和numpy类似。都是对其中每一个元素进行相同的操作。同样的也可以对某一列求最大最小值。 也可以对某一列进行排序。data.sort_values("属性名",inplace=True,ascending=True) 其中 inplace=True 表示用替换后的数据代替原数据,ascending=True 表示升序,如果等于False 则表示降序。若数据值为 NaN ,则排序时放在末尾。   下面是关于如何寻找出缺失数据。如果表格中有 NaN 则表示有缺失数据。这时候我们可以用 pandas.isnull() 并且可以用这个来统计NaN的数目

日常机器学习(十一)Pandas数据库

图片
在python中有一个读取数据很强大的包pandas,下面来介绍一下pandas这个包的一些功能。用pandas读取进来的数据类型为DataFrame。首先人工生成一个csv的文件 然后可以用pandas.read_csv("Filename")读取文件数据 data.dtypes可以看各行的数据类型 data.head()可以打印出数据的前几行,若无输入,默认为五行。同理data.tail()可以打印出数据的最后几行。 data.colums可以输出数据的列的名字  data.shape可以输出数据的大小(不包含标题栏那一列) 若想读取某一行的数据,可以用data.loc[n]函数,可以返回第n行的数据,n起始index为0 在dataFrame中,有以下几种类型的数值 1)obeject:就是以前的string类型的数 2)int:整型 3)float:浮点数,小数 4)datatime: 时间类型 5)bool:布尔变量,0或1型 若想读取某一列的值,可以用data[“列名”] data.columns.tolist()可以把标题栏变成一个向量。然后我们可以用一个loop对标题栏进行检索,搜索关键词,从而找到我们需要的信息。(PS:t.endswith("a")是判断t是否以a结尾)

日常机器学习(十)Numpy函数

图片
numpy中有很多可以直接用的函数,如sin(), exp(), sqrt() 还有floor()下取整函数和ceil()上取整函数 若是有个矩阵,可以用ravel()可以把矩阵拆成一个向量。a.T可以求得矩阵的转置。 numpy.vstack()和numpy.hstack()可以进行矩阵的拼接 同样的,numpy.vsplit()和numpy.hsplit()可以分离函数。可以等分也可以在指定位置分离 有时候进行等号操作时,让b = a 那么对b的任意操作会直接影响a的值。可以理解成b = a是地址类型的相等。从id()这个function中也可以看出来 a.view()也可以复制数组,但是复制的时候id不同。若改变某一位置的数字的值,另一数组中的数值也会随之改变。 若是想得到完全不同的两个数,保证两个两之间不会相互影响。需要用到a.copy()函数 a.argmax(axis=0)返回每列中最大值的index,同理(axis=1)返回每行最大值的index numpy.tile(b,(m,n))表示对b进行复制,行变成原来的m倍,列变成原来的n倍 numpy.sort(a,axis=1)对每行进行sort排序。b.sort(axis=1)也可以进行同样的操作。argsort()可以返回排序后的index。

日常机器学习(九)Numpy矩阵

图片
Numpy中arange函数还能生成均分一段数据arange(a,b,c),表示从a开始,每次叠加c,若数字大于b停止。 numpy的random模块下有一个random函数可以返回(0,1)之间的随机数 linspace(a,b,c)从a开始到b,均分成c个点 也可以从numpy中读取一些特殊数 两个向量进行运算,会得到对应位置元素的操作 下面进行矩阵的乘法运算,直接*表示对应元素之间的相乘,矩阵乘法需要用numpy.dot()函数