python数据分析(Jupyter Notebook工具)之numpy库

数据分析是一门借助于计算机系统,针对海量、结构各异、不规则的数据进行高效处理,从中间提取对科学、技术、经济、社会有用的信息,并对人类的各种活动产生有益的指导作用。

数据分析领域涉及的主要技术包括数据加载、数据转换、数据查询、数据聚合、数据拆分、数据可视化等,由三个核心包实现: NumPy、 Pandas 和 Matplotlib。 NumPy 实现高效的复杂数学运算,为包括数学分析在内的科学计算提供强大的计算平台; Pandas提供了数据分析中涉及的主要前端功能,如数据加载、数据转换、数据查询、数据聚合与拆分等; Matplotlib为快速展现数据分析成果提供了一个功能强大的工具集。

目录

数组操作

数组特性

广播机制

数组基本操作

查询数组

排序数组

数组操作

熟悉 NumPy 的首要任务为熟悉数组的创建。

1,arange()方法创建一维数组,注意: arange(10)创建的数组里面不包括元素 10

python数据分析(Jupyter Notebook工具)之numpy库

2.创建指定步长的一维数组,arrange(10,100,30)中的参数 10、 100、 30 分别为起始值、终止值、步长,即创建的数组里 面包括 10、 40( 10+30)、 70(40+30),但不包括 100。

python数据分析(Jupyter Notebook工具)之numpy库

3.使用 zeros()和 ones()创建一维数组

python数据分析(Jupyter Notebook工具)之numpy库
  1. 使用 empty()和 full()创建一维数组, empty()使用随机数填充新创 建的数组

python数据分析(Jupyter Notebook工具)之numpy库

5.使用 linspace()和 random()创建一维数组

linspace(0,10,5)返回区间 0~10 内均匀间隔的 5 个数字,即 0、 2.5、 5、 7.5、 10

python数据分析(Jupyter Notebook工具)之numpy库

6.使用 zeros()、 ones()、 full()和 empty()创建多维数组

python数据分析(Jupyter Notebook工具)之numpy库

7.使用 arange()创建多维数组

先使用 arange(24)生成包含 24 个元素的一维数组,再调用 reshape()将其转换为 一个 3 维数组,每个维度的元素个数分别为 2、 3、 4。

python数据分析(Jupyter Notebook工具)之numpy库

数组特性

1.查看数组的数据类型

python数据分析(Jupyter Notebook工具)之numpy库
  1. 创建指定数据类型的数组

python数据分析(Jupyter Notebook工具)之numpy库

3.查看数组的形状

python数据分析(Jupyter Notebook工具)之numpy库

4.使用不同轴向参数调用 max()

作为 一个支持各类科学计算的基础包, NumPy 存储和处理的数据大都为多维数组,而同一个操作 在多维数组上可能具有多种不同的操作方向,因此 NumPy 引入轴向概念,指示操作的方向。 一维数组只有一个轴向( Axis=0),二维数组有两个轴向,分别为 Axis=0(垂直轴向)和Axis=1(水平轴向),三维或以上数组以此类推。

python数据分析(Jupyter Notebook工具)之numpy库

广播机制

不同大小的数组不能进行加、减,或通常的算术运算。但是,实际项目中经常会需要对大 小不同的数据进行处理和运算,因此 NumPy 引入广播机制(Broadcasting),用于解决不同大 小数组之间的算术运算问题。广播机制的原理为适当”扩大”数组的形状,使得两个数组的形 状完全相等。

为解决不同形状数组之间的算术计算问题,广播对数组进行变换,从而实现形状不同的数 组之间也能进行算数计算。广播的核心原理为按照一定的规则对数组进行扩展和复制,从而使 多个数组的形状保持一致,其主要步骤如下所述:
( 1) 扩展:如果数组维数不同,则扩展维数少的数组,在其形状中添加前缀 1,使 其维数与最多维数数组的维数相等。例如,如果 x.shape=(2,), y.shape=(7,2,3),则扩展 x 的维数: x.shape=(1,1,2)。
(2) 复制:如果某一轴向的长度为 1,则沿此轴向复制此轴向上唯一的数据,使其 长度与所有数组在此轴向上的最大长度相等。需要说明的是 NumPy 并没有进行真正的复制操 作,而是通过指针来模拟复制操作。另外,如果多个数组在某个轴向上的长度不相等并且不为1,则复制失败。
(3) 计算:执行完广播后的数组均具有相同的形状,因此可以进行相应的算术计算。

例:x=np.arange(4).reshape(1,4)

y=np.arange(4).reshape(4,1)

z = x + y

则z = [[0,1,2,3],[1,2,3,4],[2,3,4,5],[3,4,5,6]]

python数据分析(Jupyter Notebook工具)之numpy库

数组基本操作

1.使用 reshape()变换数组形状

python数据分析(Jupyter Notebook工具)之numpy库

2.拼接数组

python数据分析(Jupyter Notebook工具)之numpy库

3.切分数组

python数据分析(Jupyter Notebook工具)之numpy库

python数据分析(Jupyter Notebook工具)之numpy库

4.访问数组(利用整数索引和切片索引访问一维数组)

python数据分析(Jupyter Notebook工具)之numpy库

 x[3]:首先获取结果集,即访问 x 中第 3 个元素,因此结果集为 [3]。因为本例中使用 标量索引来访问 0 轴数据,参考表 2-4,得知变换后的结果集形状为 (,),即需将结果集形状变 换为标量,因此最后返回标量 3。

 x[2:5]:访问 x 中第 2 个到第 4 个之间的元素(不包括终止值 5),结果集为 [2, 3,4]。 0 轴使用切片索引,因此 0 轴形状为切片索引的数值个数,即 3,将结果集的形状转换为(3,),最后返回 [2, 3, 4]。

 x[:5]:访问 x 中第 0 个到第 5 个之间的元素,输出为 [0, 1, 2, 3, 4]。 NumPy 采用 与 Python 中切片相同的处理方式,省略切片中的开始值表示从第 0 个元素开始。结果形状的 确定与 x[2:5]相同,不再赘述,以下同。

 x[7:]:访问 x 中第 7 个到最后一个元素,输出为 [7, 8, 9]。省略切片中的终止值表示 一直到最后一个元素。

 x[5::-1]:倒序访问第 5 个到第 0 个元素,输出为 [5, 4, 3, 2, 1, 0]。指定步长为 -1

表示倒序访问数组元素。

5.利用整数索引和切片索引访问二维数组

python数据分析(Jupyter Notebook工具)之numpy库

 y[2,1]: 0 轴索引和 1 轴索引均为标量索引,即访问 y 中第 2 行第 1 列的数据,结果集 为 [9]。

 y[1]: 0 轴索引为标量, 1 轴没有指定索引,即访问第 1 行所有列的数据,结果集为

[4,5,6,7]。

 y[:2,2:3]:访问 y 中的第 0 行至第 1 行中的第 2 列至第 2 列的数据,结果集为 [2,6]。 0

轴和 1 轴均指定了切片索引,且分别包括 2 个和 1 个数值,因此最终形状为 (2,1),即返回

[[2],[6]]。

 y[:,0]:访问所有行的第 0 列数据,最终输出结果为 [0,4,8]。

查询数组

数据处理与分析中存在大量的查询操作,如查询 7 月平均气温高于 30 摄氏度的城市,销 售额最高的年份,高于平均成绩的人数等。 NumPy 提供 where()、 extract()、 all()、 any()支持基 于条件的查询,提供 amin()、 amax()、 median()、 mean()等方法支持各类统计计算。

python数据分析(Jupyter Notebook工具)之numpy库

all()和 any()用来按轴向检测数据是否全部为真值或者存在至少一个真值。

python数据分析(Jupyter Notebook工具)之numpy库

NumPy 中常用的统计方法列表

python数据分析(Jupyter Notebook工具)之numpy库
统计方法的使用如下:
python数据分析(Jupyter Notebook工具)之numpy库

排序数组

NumPy 提供了一系列适应于数组的排序方法,包括 sort()、 argsort()、 lexsort()、 partition()、sorted()等。

主要排序方法列表

python数据分析(Jupyter Notebook工具)之numpy库
下面代码演示了 NumPy 中常见排序算法的使用:
python数据分析(Jupyter Notebook工具)之numpy库

小结:

作为一个支持数据分析与科学计算的基础包, NumPy 提供了一个 ndarray 数组结构,克服 了 Python 内置的 List 结构对于多维数组支持的局限性,提升了多维数据存储、访问、操作的 效率。以数组为基础, NumPy 为数据访问、形状变换、数据访问、数据计算提供了丰富的功 能支持与方法实现,成为常见的科学计算、数据分析、机器学习包的后台基础包。如果没有NumPy, Python 在数据分析、科学计算、人工智能方面的应用前景会受到不可估量的影响。因 此,了解和熟悉 NumPy 将为数据分析提供理论与实践基础,使数据分析工作者对于数据分析 操作不仅知其然,而且知其所以然。

Original: https://blog.csdn.net/m0_59405106/article/details/126371474
Author: double@AI
Title: python数据分析(Jupyter Notebook工具)之numpy库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/759361/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球