在大数据时代,数据的获取变得越来越容易,然而如何充分发挥这些数据的价值,需要对数据进行预处理、筛选和分析,以便从中提取出对我们最有价值的信息。传统的数据处理方法已经难以满足现代高效、灵活的数据处理需求。
Python作为AI和数据分析领域的重要工具,提供了强大的库支持,其中尤其以NumPy和Pandas库最为常用。这两个库在数据分析领域应用广泛,接下来我们将重点介绍NumPy库的相关内容。
【1】NumPy简介
NumPy是一个功能强大的Python库,主要用于多维数组的计算。它提供了丰富的库函数和操作,使程序员能够轻松进行数值计算。在机器学习和图形处理等领域,NumPy的应用十分广泛。此外,它是许多其他数据分析库(如Pandas和SciPy)的基础。因此,我们将首先详细介绍NumPy库。
NumPy是一个第三方库,使用前需要安装。安装命令如下:
pip install numpy
【2】NumPy中的重要概念
标量 (Scalar):
标量是没有方向的单一数值,例如质量、体积、温度等。
标量通常用小写字母表示。
向量 (Vector):
向量是有大小和方向的量,也称为矢量。例如力、速度、位移等。
向量是一系列按顺序排列的数值,通常用粗体小写字母表示,如x。
矩阵 (Matrix):
矩阵是由具有相同特征和维度的对象组成的集合,表现为二维数组。
在矩阵中,每一行代表一个对象,每一列代表一个特征,每个特征都有数值型取值。矩阵通常用粗体大写字母表示,如A。
张量 (Tensor):
张量是超过两维的数组。
一般情况下,数组中的元素分布在多个维度上,这种结构被称为张量。张量可以用粗体字母A表示。
简单来说,标量可以看作零阶张量,向量是一阶张量,矩阵是二阶张量。任何彩色图像都可以表示为一个三阶张量,其中三个维度分别代表图像的高度、宽度和颜色数据。
数组 (Array):
数组是一系列有序的元素,可以由相同类型的变量集合构成。数组中的各个变量称为数组元素。
维度 (Dimension):
维度是从数学角度定义的概念,用于确定多维数组中底层元素的位置所需的索引数量。
轴 (Axis):
有些人将维度称为轴。轴是指某个维度及其该维度上的所有数据。
【3】NumPy数组结构
NumPy中的ndarray是一种多维数组对象,用于存储相同类型的元素集合。可以通过基于零的索引访问数组中的元素。
NumPy支持的数据类型比Python内置类型丰富得多,基本可以与C语言的数据类型相对应。其中一些类型可以直接对应Python内置类型。
创建NumPy数组
在NumPy中,使用array()函数创建数组,其语法格式如下:
1)使用Python内置的列表和元组创建NumPy数组
2)使用Python内置的range()函数创建NumPy数组
3)创建二维数组
4)创建指定类型的数组
在创建数组时,可以使用array()函数中的dtype参数指定数组元素的类型。如果不指定类型,将自动选择所需最小类型。
还可以使用ndarray对象的astype()方法更改数组的数据类型。需要注意的是,astype()方法会返回一个新的数组。
5)使用NumPy库提供的函数创建数组
arange()函数:在给定范围内生成等差数列的一维数组。
linspace()函数:在指定区间内生成均匀分布的数字。
full()函数:根据指定的数组形状和数据类型生成所有元素都相同的数组。
empty()函数:根据指定的数组形状和数据类型生成未初始化的数组。
zeros_like()函数:根据现有数组的形状和数据类型生成全零数组。
eye()函数:生成单位矩阵。
生成随机数的函数:常用的有rand(), randint(), 和choice()等。
NumPy库在AI和数据分析领域应用广泛。掌握好NumPy库中的核心对象ndarray,是学习NumPy的关键。本节介绍了NumPy数组的基本概念和创建方法,下一节我们将继续探讨更多高级功能。