numpy 创建加一行_Python数据分析快速入门--NumPy & Pandas

论坛 期权论坛 脚本     
已经匿名di用户   2022-4-13 16:43   4920   0

0071048472dd06c4368b6d2da83a513c.png

之前为大家分享了python的基本语法,有疑问的小伙伴可以参考下文~

土豆爱数学:零基础如何快速入门pythonzhuanlan.zhihu.com
7de27e2cc68f3c754ba3a87cb5bd7a69.png

对python基本语法了解后,就可以尝试用python进行数据分析了。python在数据分析领域用到最多是包numpy、pandas 和 matplotlib:

  • numpy是用于科学计算,比如线性代数中的矩阵计算(在机器学习中非常有用);
  • pandas是基于numpy的数据分析工具,该工具是为了解决数据分析任务而创建的,它提供了一套名为数据框dataframe的数据结构,可以方便地对表结构的数据进行分析;
  • matplotlib是一个图形绘制库,专门用于数据分析结果的可视化。

那么在进行正式数据分析之前,我们先来学习一下这几个包的使用(本文主要介绍numpy和pandas包,matplotlib图表可视化后续会专门出教程~),后续会结合实际的案例帮助大家更好的理解这几个包的使用,以及数据分析的基本过程。

8a89bf55af6d48402ae5d543413e109d.png
本文目录

一、科学计算工具:numpy包学习

e6db128186a057e05654ba46094735ae.png
numpy包学习内容框架

首先在notebook中导入numpy包

#导入numpy包并重新命名(需要先安装,可以直接在终端安装:pip install numpy)

先来学习一下numpy的基础数据结构,numpy数组是一个多维数组对象,称为ndarray,可以创建一维、二维、三维几多维数组。

数组的基本属性:

  • ① 数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推
  • ② 在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量:比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组,所以一维数组就是NumPy中的轴(axes),第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。

1array()创建一维数组及操作

60c4c1ca83080543eb93998ff7fac6de.png
一维数组学习内容框架

1、numpy一维数组创建

#创建一维数组:array()函数,括号内可以是列表、元祖、数组、生成器等

2、一维数组基本元素查询及切片访问

通常一个切片操作要提供三个参数:[切片起始位置: 切片的结束位置(不包括): 步长]
step可以不提供,默认值是1,步长值不能为0,不然会报错ValueError。
ar 

3、可以循环访问

ar 

4、基本计算:加减乘除,平均值,最大最小值,方差标准差等

print
注:numpy 一维与列表的差异:numpy数组中的每个元素都必须是同一种数据类型,而列表中的元素可以是不同的数据类型。

2array()创建二维数组及操作

二维数据结构是指这个数据既有行又有列,有点类似于Excel里的二维表格

0a52d322ae6e0081ae804d7909ea272c.png
二维数组学习内容框架

1、创建二维数组:array()函数(三维数组同理)

ar 

2、二维数组元素查询及切片访问(三维数组同理)

print

3、布尔型索引及切片(三维数组同理)

# 以布尔型的矩阵去做筛选

4、numpy数轴参数

ar 

3其他numpy创建数组方法

# 其他创建数组方法:arange(),类似range(),在给定间隔内返回均匀间隔的值。
# 其他创建数组方法:linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):返回在间隔[start,stop]上计算的num个均匀间隔的样本
# 其他创建数组方法:zeros(shape, dtype=float, order='C'):返回给定形状和类型的新数组,用零填充
# 其他创建数组方法:zeros_like() 返回具有与给定数组相同的形状和类型的零数组
# 其他创建数组方法:ones()/ones_like(),和zeros()/zeros_like()一样,只是填充为1
# 其他创建数组方法:eye(),创建一个正方的N*N的单位矩阵,对角线值为1,其余为0

4numpy通用函数

# 数组形状:.T方法:转置,例如原shape为(3,4)/(2,3,4),转置结果为(4,3)/(4,3,2) → 所以一维数组转置后结果不变
# 数组形状:.reshape(a, newshape, order='C'):为数组提供新形状,而不更改其数据,所以元素数量需要一致
# 数组形状:.resize(a, new_shape):返回具有指定形状的新数组,如有必要可重复填充所需数量的元素
# 数组复制:.copy() 如ar1 = ar.copy()
# 数组类型转换:.astype(),如ar2 = ar1.astype(np.int32)

5Numpy随机数

numpy.random包含多种概率分布的随机样本,是数据分析辅助的重点工具之一,感兴趣的可以百度或私信~

二、数据分析工具:pandas学习

5e38837e7f65c3b83b5114870a029bd0.png
pandas包学习内容框架

首先在notebook中导入pandas包

#导入pandas包并重新命名(需要先安装,可以直接在终端安装:pip install pandas)

先来学习一下pandas的基础数据结构,pandas有Series和Dataframe两种数据结构,分别代表了一维数组和二维数组:

  • Series 数据结构是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引;
  • Dataframe是一个表格型的数据结构,“带有标签的二维数组”

1pandas一维数组Series创建及操作

1、创建series:创建方法一:由字典创建 / 创建方法二:由数组创建(一维数组) / 名称属性:name

# 创建方法一:由字典创建,字典的key就是index,values就是values

2、Series索引:iloc属性用于根据位置获取值/ loc属性用于根据索引获取值/ 切片索引 / 布尔型索引

# 位置下标索引,位置下标从0开始

3、基本数据技巧:数据查看 / 获取描述统计信息 / 向量化运算 / 删除缺失值 / 将缺失值进行填充

# 数据查看

4、series与array一维数组的联系与区别:

pandas是建立在numpy的基础上的,series和ndarray较相似,索引切片功能差别不大。但是Series比Array的功能更多,series相比于ndarray,是一个自带索引index的数组,所以当只看series的值的时候,就是一个ndarray

2pandas二维数组Dataframe创建及操作

8c6502a02c7636ecc10683f80ef4cb0d.png
Dataframe学习内容框架

1、创建方法

  • 常用方法:由字典创建(由数组/list组成的字典)
  • 其他变形创建方法:由series组成的字典/由字典组成的列表/由字典组成的字典/通过二维数组直接创建
#常用创建方法:由字典创建(由数组/list组成的字典)

494322af789eaf35a988ddd377f5f3e7.png
salesDf结果

2、Dataframe索引

>>查询数据:iloc属性用于根据位置获取值:查询元素 / 获取行 / 获取列

#查询元素:查询第1行第2列的元素

>>查询数据:loc属性用于根据索引获取值:查询元素 / 获取行 / 获取列

#查询元素:查询第1行第2列的元素

>>数据框复杂查询:切片索引

#通过列表来选择某几列的数据

ea55309b92395938242a9f229af337e7.png
salesDf[['商品名称','销售数量']] 结果
#通过切片功能,获取指定范围的列

9422a991f5e39ac83d61c8b61ed9d793.png
salesDf.loc[:,'购药时间':'销售数量']结果

>>数据框复杂查询:条件判断(布尔型索引)

#通过条件判断筛选

835a1e2c7d15ce7a28bfa99a88440577.png
salesDf.loc[querySer,:]结果

3、查看数据集描述统计信息

#读取Ecxcel数据

8445e7b665ff8d88e0f676d455ef0bb3.png
salesDf.head(3) 结果
#查看数据有多少行,多少列

3318c5cb31bd594815d3b6b7d3116fe4.png
salesDf.describe()结果

4、dataframe与array二维数组的联系与区别:

numpy数组中的每一个元素都属于同一种数据类型,这在数值计算和科学计算中是非常有用的。但是它不利于我们表示类似于Excel中的内容,因为Excel中每一列的数据类型可能都不一样

DataFrame 也有索引的功能,这使得其很容易存储常见的表格数据,DataFrame 的每一列数据可以是不同类型,这就方便表示 Excel 中的数据内容。

三、总结~

以上分享了利用python进行数据分析两个最关键的包:numpy与pandas的基础学习内容,还有如numpy中random随机数、pandas中datetime时间模块等也是数据分析中常用到的模块函数,包括数据python在可视化matplotlib包的学习,后续会继续分享给大家。

接下来会分享利用python进行数据分析的实战项目(大型零售数据分析案例),让大家更好的理解数据分析的过程,与numpy与pandas包的学习应用

最后~附上python数据分析入门numpy与pandas包的学习笔记~希望对大家有帮助,有任何问题欢迎联系与指正。

9b52f5c52e7da89c033bfd11f7285dc0.png
numpy与pandas学习笔记
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP