![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
numpy、pandas、matplotlib
文章平均质量分 52
代码举例
弦之森
选择与长夜同行,我从未后悔。
展开
-
(33)matplotlib绘制直方图
第二个参数:分组的依据,根据这些分组依据,将第一个参数中的数据分成不同的组,每一组对应不同数量的数据。绘制简单直方图函数:plt.hist()第三个参数:是否将其转换为频率分布直方图。第一个参数:由数据组成的列表。原创 2023-08-02 22:55:20 · 270 阅读 · 0 评论 -
(32)matplotlib绘制柱状图
前面已经写过,如何绘制折线图和散点图,三者相差不大,最主要的差别,在于构造图形时使用的函数不同。在构造柱状图基本图形时,多了一个传入参数width=(0~1),这个参数控制的是,柱形的大小。原创 2023-08-01 22:39:53 · 55 阅读 · 0 评论 -
(31)matplotlib绘制散点图
与绘制折线图不同的是,绘制散点图只需要变换一下绘制即可,也就是将plt.plot()函数替成plt.scatter()函数。除主绘图函数改变之外,其余代码几乎没有任何变化。原创 2023-08-01 19:49:15 · 163 阅读 · 0 评论 -
(30)matplotlib基础折线图的绘制
注意:当用户传入x、y轴“每条折线所代表的意义”时,需要使用plt.legend()函数,使之生效。1)函数:设置x、y轴的显示范围,需要用到plt.xticks()函数。figure()传入参数,figsize=(长,宽),dpi=清晰度。axis=x/y/both:显示x/y/x&y方向的网格线。函数:绘制x、y轴,需要用到plt.plot()函数。(2)设置x、y轴的显示范围,以及设置x轴的刻度说明。plt.savefig("./图像.png")函数:plt.xlabel="x轴标题"原创 2023-08-01 12:21:48 · 529 阅读 · 0 评论 -
(29)数据分析-高级聚合
一般数据的聚合操作,都是调用groupby()函数,传入参数为目标列的索引,再调用各种聚合函数。当想使用非官方定义的聚合函数,也就是自定义的聚合函数时,就需要用到apply()函数了。原创 2023-07-31 16:58:08 · 38 阅读 · 0 评论 -
(28)数据分析-分组表、透视表、交叉表
运行结果(得到分组对象)得到分组对象函数:.groupby()函数,传入参数为索引运行结果。原创 2023-07-31 11:54:53 · 168 阅读 · 0 评论 -
(27)数据分析-随机排序和随机抽样
运行结果take()函数传入参数为列表,通过axis=0/1控制行/列,可以理解为通过隐式索引,先查找到索引指向的行/列,再去除这些行/列take()函数可以配合np.random.permutation()函数,实现随机排列的随机抽样通过np.random.permutation()函数得到一组随机索引,再将这组随即索引传入take函数,就可以得到经过随机排序之后的数组。运行结果。原创 2023-07-30 19:52:38 · 90 阅读 · 0 评论 -
(26)数据分析-异常值处理与检测
运行结果describe()只对可运算的类型的列有效count:多少个值mean:平均值std:标准差min:最小值max:最大值运行结果columns列索引Non-Null:有没有空值Count:个数Dtype:类型运行结果异常值检测常用的界定方法,如果数据都是呈标准正态分布的,如果data>3|data.std()|;离群点检测检测,数值型数据都可以通过离群点来检测;原创 2023-07-30 17:23:13 · 205 阅读 · 0 评论 -
(25)数据分析-rename索引替换函数
mapper传入参数为一个字典,需要搭配axis使用,默认axis=0,会自动匹配行索引,axis=1,会自动列索引。level未传入参数时,会替换掉行/列所有目标索引,当level指定值时(外——>内:0——>n)先读取传入字典中的key,然后再找到对应的索引,字典key对应的value,就是被替换掉的索引。columns/index传入参数为字典。原创 2023-07-30 16:06:00 · 216 阅读 · 0 评论 -
(24)数据分析-map映射
map是Series的函数,所以通常用来对某一列进行整体的映射处理将序列中的每一个元素,输入函数,最后将映射后的每个值返回合并,得到一个迭代器。运行结果。原创 2023-07-29 23:28:59 · 65 阅读 · 0 评论 -
(23)replace替换
运行结果。原创 2023-07-29 17:15:08 · 79 阅读 · 0 评论 -
(22)数据分析-重复值的处理
keep="保留第一次的出现的重复行"/"保留最后一次出现的重复行"函数中并不存在axis参数,意味着重复值只会在行内查找。drop_duplicates:删除多余行。根据传入的参数,筛选出相同的行。原创 2023-07-29 16:43:53 · 227 阅读 · 0 评论 -
(21)pandas合并练习
【代码】(21)pandas合并练习。原创 2023-07-28 18:55:44 · 114 阅读 · 0 评论 -
(20)axis=0/1?
数组的变化是纵向的,例如在DataFrame数组中,当要按照列索引级联某两个数组时,数组的变化时纵向的(纵向距离增大),所以axis=0。:数组的变化是横向的,例如在DataFrame数组中,要删除某一列元素,此时数组的变化是横向的(横向距离缩小),所以axis=1。原创 2023-07-28 12:17:52 · 57 阅读 · 0 评论 -
(19)pandas合并
根据suffixes的传入参数,可以给表格中相同的key添加后缀;labels=,传入参数为列表,列表元素为被删除的行/列标签。(2)默认如果有多个列的标签相同,则会同时参考多列合并;在合并时,how默认参数为inner,也就是内合并;concat(级联):只保留相同的【标签】;merge(合并):只保留相同的【内容】;(1)把字段相同的列作为合并的依据;右表为主表:how="right";保留交集:how="inner";保留并集:how="outer";左表为主表:how="left";原创 2023-07-28 12:04:22 · 72 阅读 · 0 评论 -
(18)pandas级联
【级联的定义】说到级联,就不得不提到numpy数组的级联操作,在numpy数组的级联操作中,两个级联的表格需要形状一致,而在pandas的DataFrame数组级联中,会进行索引对齐,形状不同,照样可以连接。原创 2023-07-27 21:18:46 · 80 阅读 · 1 评论 -
(17)DataFrame多层索引变形操作
通过控制传入参数来决定被调换的列索引,当level=0时,被调换的列索引为第一列,当level=1时,被调换的列索引为第二列,如果想要将行多层级索引的某一级索引,调换到列索引上,只需要调用unstack函数,从外往里,level从0到n-1。原创 2023-07-26 18:02:43 · 171 阅读 · 1 评论 -
(16)pandas多层级索引的访问
想要得到多个值时,只需要将loc的第一个传入参数设置为列表(由目标索引组成的元组)即可,可以显式索引,也可以隐式索引。在对Series数组进行多层级索引操作时,和一维索引操作的不同之处在loc的传入参数。当传入参数是元组时,元组中元素的等级依次减小,每一个元素,代表着该层级的索引位置。单曲去除df_things数组中的“语文”列,就可以得到一个Series数组。原创 2023-07-26 17:22:55 · 198 阅读 · 1 评论 -
(15)DataFrame多层级索引的构建
构造多层级索引,主体就和构造DataFrame数组一样,确定data、columns(列索引)、index(行索引)在pd.MultiIndex.from_product()中,传入参数为一个列表,该列表中的元素(列表)等级依次减小。如果要将列索引构建为多层级,那么其余步骤不变,列索引columns要调用方法重新构造。通俗点说,构造多层级索引,就是构建一个新的行/列索引。原创 2023-07-25 19:55:56 · 567 阅读 · 0 评论 -
(14)pandas缺失值的处理
pandas里面的空值是一个浮点类型,而python里面的空值,是一个对象类型运行结果【优化nan】pandas的所有对象,都会将python中原有的None,优化成NaN给pandas对象的某一个元素赋值为None,解释器会自动将其优化为NaN。运行结果调用DataFrame的“.dtypes”方法,可以查看每一列元素的类型。运行结果过滤函数.dropna():默认删除nan所在的行运行结果。原创 2023-07-25 16:18:41 · 114 阅读 · 0 评论 -
(13)Series和DataFrame回顾
Series一维数组,类似于字典"""访问"""索引访问:字典访问:s[key]下标访问:s[index]loc访问:s.loc[key]iloc访问:s.iloc[index]列表访问:结合以上4种方法Series(data=(输入), index=(输入))原创 2023-07-25 10:57:34 · 30 阅读 · 0 评论 -
(12)DataFrame的运算
运行结果:函数运算大致和Series数组一致,下例是“加法函数”大致代码:在这里,需要注意:求对某一行的运算时,令axis=1;求对某一列的运算时,令axis=0。运行结果:DataFrame和一个数字进行运算(广播机制) 运行结果:运行结果:DataFrame和numpy数组的运算,符合广播机制,如果形状一致,那么就会按照对应位置,进行相应的运算。运行结果:运行结果:原创 2023-07-24 12:18:36 · 156 阅读 · 0 评论 -
(11)DataFrame索引和切片
内容:内容:·访问·对列进行访问·对行进行访问·对元素进行访问·切片运行结果。原创 2023-07-23 22:15:44 · 146 阅读 · 0 评论 -
(10)DataFrame的结构和构造函数
# DataFrame是一个表格型数据,可以看做是【由Series组成的字典】(共同用一个索引)# DataFrame由按一定顺序排列的多列数据组成,设计初衷是将Seires的使用场景从一维拓展到多维,# DataFrame既有行索引,又有列索引# 行索引:index# 列索引:columns# 值:values(numpy的二维数组)# 表格数据结构,有行索引,有列索引# 是Series的字典# 所构成字典的键key,就是二维表格的列索引,# 字典的值value是一个列表,可以不传入Series,但一旦传原创 2023-07-22 18:16:06 · 115 阅读 · 0 评论 -
(9)Series数组练习
【代码】(9)Series数组练习。原创 2023-07-22 12:13:07 · 112 阅读 · 0 评论 -
(8)Series数组的运算
在探讨Series数组和一个数的运算机制之前,有必要回顾一下numpy数组和一个数的运算机制:广播机制。(Series数组和Series数组之间的运算)(Series数组和numpy数组的运算)(Series数组和一个数的运算)原创 2023-07-22 10:39:04 · 145 阅读 · 0 评论 -
(7)Series常用属性和方法
在定义Series数组时,当用户传入的显式索引在字典的key中找不到匹配项,解释器就会自动给该显式索引对应的value赋值为“NaN”。# 但当arr数据量过于庞大时,肉眼并不能判断出是否存在NaN,这是就需要用到notnull()、isnull()方法。只要在arr_series数组的显式索引中,存在"A",那么返回值就是True,反之,返回值就是False。# 因为Series数组是一个一维数组,所以name一般用作二维表格中的列字段而存在。#notnull():不存在返回True,原创 2023-07-21 18:14:54 · 269 阅读 · 0 评论 -
(6)Pandas中Series数组的访问
Series数组基础概念·Series数组的创建方式Series数组的比较机制·Series数组的索引和切片补:data=[内容],index=[索引]Series其就是一个有序的数据类型相同的集合,一维数组的强化版,增加了像字典一样的key和value访问机制,增强了可读性,同时也保留了数组的索引访问机制。(字典:无序的集合)【创建方式】两种创建方式:(1)由列表或者numpy数组创建。原创 2023-07-20 22:43:08 · 550 阅读 · 0 评论 -
(5)numpy数组的基本运算
基础运算any&&all矩阵运算广播运算排序原创 2023-07-19 13:17:03 · 298 阅读 · 0 评论 -
(4)numpy数组的常规操作
在切片时,会按照要求对原数据进行处理,从而得到用户想要的数据,但在这个过程中,不会伤及到原数据;numpy数组的级联由两种方法,第一种是通过axis的传入参数,来控制级联时横向进行,还是纵向进行的;切分也有三种方法,一种是通过axis的参数来确定是横向切分,还是纵向切分;指定划分,indices_or_sections=[a, b],在划分时,第一块0:a,第二块a:b,第三块b:最后。限制条件:被切割数组的第一维度a,必须可以整除被切割的份数b,也就是a%b==0恒成立。·numpy数组的切分。原创 2023-07-18 20:46:26 · 31 阅读 · 0 评论 -
(3)numpy数组的索引和切片操作
谈到索引,我们就应该想到,在python语言中,是如何对列表进行索引的?运行结果:通过代码两者之间的代码对比,我们可以很清楚的看到,在书写代码上,两者唯一的区别就是“用了几个括号?numpy数组这样进行索引的目的是什么?或者说,这样进行索引,会给我们带来什么便捷之处吗?这就不得不提高numpy数组的高级索引了。原创 2023-07-18 18:18:09 · 355 阅读 · 0 评论 -
(2)numpy数组的构建和属性
numpy在python中,是一个非常便捷的第三方包,在应用中,numpy向我们提供了许多方法,这里就不得不提到numpy数组的构建和属性。原创 2023-07-17 19:38:42 · 87 阅读 · 0 评论 -
(1)numpy-“什么叫做nunpy数组?”
【问】:这里必须清楚一个概念,对于numpy数组来讲,其同样是一个【有序的】、【数据类型一致】的集合,但如果数据类型不一样会发生什么?numpy提供了一组数组证明,提供了数据运算的基础,可以处理高维数组,不过在我们实际应用中,最多使用到二维数组,很少使用到三、四维数组。【答】:都不会,numpy数组在面对数据类型不一致时,会进行强制类型转换,其数据转换的优先级是:str>float>int。(python):与C语言不同的是,在python中,列表可以存储任意类型的数据,如:字符型、浮点型,整型等。原创 2023-07-17 12:54:55 · 73 阅读 · 0 评论