申请专栏作者
您的当前位置:主页 > 数据挖掘 > 正文

Python数据分析笔记——Numpy、Pandas库

来源: 时间:2018-10-10

Numpy库

 

 

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

Numpy最重要的一个特点是就是其N维数组对象,即ndarray,ndarray是一个通用的同构数据多维容器,其中的所有元素必须是相同类型的。每个数组都有一个shape(一个表示各维度大小的元组,即表示有几行几列)和dtype(一个用于说明数组数据类型的对象)。本节将围绕ndarray数组展开。 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

 

可思数据

 

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

Numpy基础 可思数据-AI,智能驾驶,人脸识别,区块链,大数据

1、创建ndarray数组

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

使用array函数,它接受一切序列型的对象,包括其他数组,然后产生一个新的Numpy数组。 可思数据-www.sykv.cn,sykv.com

 

可思数据

  可思数据-数据挖掘,智慧医疗,机器视觉,机器人

嵌套序列将会被转换成一个多维数组。 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

  可思数据

np.array会尝试为每一个新建的数组推断出适合它的数据类型。 可思数据-AI,智能驾驶,人脸识别,区块链,大数据

arange是Python内置函数range的数组版。 可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

2、数据类型 可思数据-AI,人工智能,深度学习,机器学习,神经网络

dtype是一个用来说明数组的数据类型的对象。其命名方式是一个类型名(float和int)后面跟一个用于表示各元素位长的数字。常用的是float64和int32.

可思数据-人工智能资讯平台

  可思数据-www.sykv.cn,sykv.com

 

可思数据-AI,人工智能,深度学习,机器学习,神经网络

也可以使用astype进行数组中数据类型的转化。

可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

内容来自可思数据

3、基本的索引和切片 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

(1)元素索引、根据元素在数组中的位置来进行索引。 可思数据-人工智能资讯平台

一维数组的索引

可思数据-AI,人工智能,深度学习,机器学习,神经网络

  可思数据-人工智能资讯平台

  可思数据-人工智能资讯平台

多维数组的索引

内容来自可思数据

  可思数据-数据挖掘,智慧医疗,机器视觉,机器人

 

可思数据-人工智能资讯平台

(2)切片索引 可思数据

一维数组的切片索引(与Python列表的切片索引一样) 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

 

可思数据-人工智能资讯平台

 

可思数据-AI,人工智能,深度学习,机器学习,神经网络

多维数组的切片索引

可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

本文来自可思数据,转载请联系本站及注明出处

(3)花式索引 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

元素索引和切片索引都是仅局限于连续区域的值,而花式索引可以选取特定区域的值。

可思数据-www.sykv.cn,sykv.com

  本文来自可思数据,转载请联系本站及注明出处

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

上述语句选出的是元素(1,0)、(5,3)、(7,1)、(2,2)。 可思数据-AI,人工智能,深度学习,机器学习,神经网络

  可思数据-AI,智能驾驶,人脸识别,区块链,大数据

  可思数据

上述语句按0、3、1、2列的顺序依次显示1、5、7、2行。下述语句能实现同样的效果。 内容来自可思数据

 

可思数据-人工智能资讯平台

 

可思数据

Numpy数组的基本运算

可思数据-www.sykv.cn,sykv.com

1、数组和标量之间的预算

可思数据-www.sykv.cn,sykv.com

  可思数据-www.sykv.cn,sykv.com

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

2、元素级数组函数

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

是指对数组中每个元素执行函数运算。下面例子是对数组各元素执行平方根操作。还有abs、exp、sin、cos、log、sum、mean(算术平均数)、cumsum(所有元素的累计和)、cumprod(所有元素的累计积)、sort(将元素进行排序)等函数。 可思数据-人工智能资讯平台

  本文来自可思数据,转载请联系本站及注明出处

 

可思数据-www.sykv.cn,sykv.com

Pandas库 可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

可思数据

  可思数据

Pandas数据结构 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

1、Series 本文来自可思数据,转载请联系本站及注明出处

(1)概念:

可思数据-AI,人工智能,深度学习,机器学习,神经网络

Series是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签(即索引)组成。

本文来自可思数据,转载请联系本站及注明出处

(2)创建Series 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

a、通过series来创建 本文来自可思数据,转载请联系本站及注明出处

 

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

  可思数据-AI,智能驾驶,人脸识别,区块链,大数据

Series的字符串表现形式为:索引在左边,值在右边。当我们没有为数据指定索引时,Series会自动创建一个0到N-1(N为数据的长度)的整数型索引。可以通过Series的values和index属性获取其数组的值和对应的属性。 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

  可思数据-AI,智能驾驶,人脸识别,区块链,大数据

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

也可以在创建Series的时候为值直接创建索引。 可思数据-www.sykv.cn,sykv.com

 

本文来自可思数据,转载请联系本站及注明出处

  可思数据-人工智能资讯平台

b、通过字典的形式来创建Series。 本文来自可思数据,转载请联系本站及注明出处

  本文来自可思数据,转载请联系本站及注明出处

  可思数据-www.sykv.cn,sykv.com

(3)获取Series中的值 本文来自可思数据,转载请联系本站及注明出处

通过索引的方式选取Series中的单个或一组值。

本文来自可思数据,转载请联系本站及注明出处

 

可思数据-www.sykv.cn,sykv.com

  可思数据

2、DataFrame 可思数据-人工智能资讯平台

(1)概念:

可思数据

DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,其中的数据是以一个或多个二维块存放的,而不是列表、字典或别的一维数据结构。 可思数据-www.sykv.cn,sykv.com

(2)创建DataFrame:

可思数据-AI,人工智能,深度学习,机器学习,神经网络

最常用的一种方法是直接传入一个等长列表或numpy数组组成的字典:

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

 

可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

可思数据-AI,人工智能,深度学习,机器学习,神经网络

结果DataFrame会自动加上索引(添加方法与Series一样),且全部列会被有序排列。

内容来自可思数据

如果指定了列序列、索引,则DataFrame的列会按指定顺序及索引进行排列。

可思数据-www.sykv.cn,sykv.com

 

可思数据-www.sykv.cn,sykv.com

  可思数据-AI,智能驾驶,人脸识别,区块链,大数据

也可以设置DataFrame的index和columns的name属性,则这些信息也会被显示出来。 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

  可思数据-数据挖掘,智慧医疗,机器视觉,机器人

 

可思数据-www.sykv.cn,sykv.com

(3)获取DataFrame的值(行或列)

可思数据-www.sykv.cn,sykv.com

通过查找columns值获取对应的列。(下面两种方法)

内容来自可思数据

  内容来自可思数据

  可思数据-数据挖掘,智慧医疗,机器视觉,机器人

通过索引字段ix查找相应的行。

本文来自可思数据,转载请联系本站及注明出处

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

  可思数据

(4)对列进行赋值处理。 内容来自可思数据

对某一列可以赋一个标量值也可以是一组值。

可思数据-人工智能资讯平台

  可思数据-数据挖掘,智慧医疗,机器视觉,机器人

  可思数据-人工智能资讯平台

也可以给某一列赋值一个列表或数组,其长度必须跟DataFrame长度相匹配。如果赋值的是一个Series,则对应的索引位置将被赋值,其他位置的值被赋予空值。 可思数据

  可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

可思数据-www.sykv.cn,sykv.com

Pandas基本功能 可思数据-AI,人工智能,深度学习,机器学习,神经网络

1、重新索引

可思数据

Pandas对象的一个方法就是重新索引(reindex),其作用是创建一个新的索引,pandas对象将按这个新索引进行排序。对于不存在的索引值,引入缺失值。 内容来自可思数据

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

 

可思数据

也可以按columns(行)进行重新索引,对于不存在的列名称,将被填充空值。

可思数据-AI,人工智能,深度学习,机器学习,神经网络

  可思数据-人工智能资讯平台

 

本文来自可思数据,转载请联系本站及注明出处

对于不存在的索引值带来的缺失值,也可以在重新索引时使用fill_value给缺失值填充指定值。 可思数据-www.sykv.cn,sykv.com

 

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

  可思数据-www.sykv.cn,sykv.com

  可思数据-www.sykv.cn,sykv.com

 

本文来自可思数据,转载请联系本站及注明出处

对于缺失值除使用fill_value的方式填充特定值以外还可以使用method=ffill(向前填充、即后面的缺失值用前面非缺失值填充)、bfill(向后填充,即前面的缺失值用后面的非缺失值填充)。 可思数据-AI,智能驾驶,人脸识别,区块链,大数据

2、丢弃指定轴上的项 可思数据-人工智能资讯平台

使用drop方法删除指定索引值对应的对象。

内容来自可思数据

 

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

可以同时删除多个索引对应的值。 内容来自可思数据

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

  可思数据-数据挖掘,智慧医疗,机器视觉,机器人

对于DataFrame,可以删除任意轴上(columns)的索引值。

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

3、算数运算和数据对齐

可思数据-人工智能资讯平台

(1)Series 与Series之间的运算 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

将不同索引的对象进行算数运算,在将对象进行相加时,如果存在时,则结果的索引就是该索引的并集,而结果的对象为空。

可思数据

  内容来自可思数据

 

可思数据-人工智能资讯平台

(2)DataFrame与Series之间的运算

本文来自可思数据,转载请联系本站及注明出处

将DataFrame的每一行与Series分别进行运算。(索引相同的进行算数运算,索引不同的被赋予空值)

内容来自可思数据

4、排序和排名

本文来自可思数据,转载请联系本站及注明出处

根据某种条件对数据集进行排序。

可思数据-AI,人工智能,深度学习,机器学习,神经网络

(1)Series数据结构的排序和排名 本文来自可思数据,转载请联系本站及注明出处

a、按索引值进行排序 可思数据-www.sykv.cn,sykv.com

 

内容来自可思数据

  内容来自可思数据

b、按值进行排序 可思数据-人工智能资讯平台

  可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

本文来自可思数据,转载请联系本站及注明出处

默认情况下,排序是按升序排列的,但也可通过ascending=False进行降序排列。 本文来自可思数据,转载请联系本站及注明出处

 

本文来自可思数据,转载请联系本站及注明出处

  内容来自可思数据

排名跟排序不同的是,排名会增设一个排名值。obj.rank() 可思数据-www.sykv.cn,sykv.com

(2)DataFrame数据结构的排序和排名 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

按索引值进行排列,一列或多列中的值进行排序,通过by将列名传递给sort_index. 可思数据-AI,人工智能,深度学习,机器学习,神经网络

  可思数据-AI,智能驾驶,人脸识别,区块链,大数据

 

本文来自可思数据,转载请联系本站及注明出处

5、缺失数据处理

可思数据-www.sykv.cn,sykv.com

(1)滤出缺失数据 内容来自可思数据

使用data.dropna()可以滤出缺失数据,默认情况下,data.dropna()滤出含有缺失值的所有行(是含有缺失数据的那一整行)。

可思数据

传入how=‘all’将只滤出全是缺失值的那一行。

可思数据-www.sykv.cn,sykv.com

要用这种方式滤出列,只需传入axis=1即可。 本文来自可思数据,转载请联系本站及注明出处

(2)填充缺失数据

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

通过调用函数fillna,并给予这个函数一个值,则该数组中所有的缺失值都将被这个值填充。df.fillna(0)——缺失值都将被0填充。 可思数据-AI,人工智能,深度学习,机器学习,神经网络

也可以给fillna函数一个字典,就可以实现对不同的列填充不同的值。 可思数据-AI,智能驾驶,人脸识别,区块链,大数据

Df.fillna({1:0.5,3:-1})——1列的缺失值用0.5填充,3列的缺失值用-1填充。(列从0开始计数)

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

6、汇总和计算描述统计

内容来自可思数据

就是针对数组进行常用的数学和统计运算。大部分都属于约简和汇总统计。 内容来自可思数据

其中有求和(sum)运算、累计(cumsum)运算、平均值(mean)等运算。这些运算默认都是针对于行的运算,通过使用axis=1进行列的运算。 可思数据-www.sykv.cn,sykv.com

Describe既不是约简型也不是累计型,他是用于一次性产生多个汇总统计指标的运算。根据数组中数据的类型不同,产生的统计指标不同,有最值、分位数(四分位、四分之三)、标准差、方差等指标。 可思数据-www.sykv.cn,sykv.com

  可思数据-人工智能资讯平台

 

可思数据-www.sykv.cn,sykv.com

7、唯一值的获取 可思数据-www.sykv.cn,sykv.com

  可思数据-AI,人工智能,深度学习,机器学习,神经网络

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

此方法可以用于显示去重后的数据。

可思数据-www.sykv.cn,sykv.com

8、值计数 可思数据-AI,智能驾驶,人脸识别,区块链,大数据

用于计算一个Series中各值出现的次数

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

  可思数据-AI,人工智能,深度学习,机器学习,神经网络

  可思数据-人工智能资讯平台

9、层次化索引

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

层次化索引是pandas的一个重要功能,它的作用是使你在一个轴上拥有两个或多个索引级别。相当于Excel中vlookup函数的多条件查找中的多条件。 可思数据-数据挖掘,智慧医疗,机器视觉,机器人

 

可思数据-AI,智能驾驶,人脸识别,区块链,大数据

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人

对于层次化索引对象,选取数据的方式可以通过内层索引,也可以通过外层索引来选取,选取方式和单层索引选取的方式一致。 可思数据-AI,智能驾驶,人脸识别,区块链,大数据

文章来源:中国统计网 张俊红

可思数据-人工智能资讯平台


网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

Copyright©2005-2018 Sykv.cn 可思数据 版权所有    网站地图   联系我们  

人工智能资讯   人工智能资讯   人工智能资讯   人工智能资讯

扫码入群
咨询反馈
扫码关注

微信公众号

返回顶部