### NumPy库入门 #### Python NumPy库简介 NumPy是一个强大的Python库,主要用于科学计算。它提供了大量的数学函数,并且支持高效的多维数组操作。NumPy是许多其他科学计算库如SciPy、Pandas的基础。 #### NumPy的核心组件:ndarray ##### 为什么要使用NumPy? Python内置的数据结构(例如列表)虽然非常灵活,但并不适合进行大规模数值运算。而NumPy通过提供一种特殊的数组对象——`ndarray`,极大地提高了数值计算的效率。相比于Python的列表,`ndarray`有以下优势: 1. **运算速度快**:NumPy通过C语言实现内部操作,比纯Python快得多。 2. **内存占用少**:`ndarray`存储相同类型的元素,相比Python列表能更有效地利用内存。 3. **丰富的数学函数支持**:NumPy提供了大量用于数组操作的内置函数。 ##### 数据维度的概念 数据维度是指数据的组织形式,它可以帮助我们理解数据之间的关系以及如何组织数据。 - **一维数据**:由对等关系的有序或无序数据构成,通常表示为列表或数组。 - 示例:`[3.1413, 3.1398, 3.1404, 3.1401, 3.1349, 3.1376]` - 特点:可以使用列表或集合来表示,但数组要求所有元素类型相同。 - **二维数据**:由多个一维数据构成,通常表示为表格或矩阵。 - 示例: ```python [[3.1398, 3.1349, 3.1376], [3.1413, 3.1404, 3.1401]] ``` - 特点:二维数据通常用列表表示,每个子列表代表一维数据。 - **多维数据**:由一维或二维数据在新维度上扩展形成。 - 示例: ```python [[[3.1398, 3.1349, 3.1376], [3.1413, 3.1404, 3.1401]], [[3.1398, 3.1349, 3.1376], [3.1413, 3.1404, 3.1401]]] ``` - **高维数据**:仅利用最基本的二元关系展示数据间的复杂结构,通常用字典表示。 - 示例: ```python { firstName: Tian, lastName: Song, address: { streetAddr: 中关村南大街5号, city: 北京市, zipcode: 100081 }, prof: [ComputerSystem, Security] } ``` ##### NumPy的数组对象:ndarray NumPy的核心在于它的`ndarray`对象,这个对象可以高效地处理各种数值计算任务。 - **初始化ndarray**:可以通过`np.array()`函数创建`ndarray`。 - 示例: ```python import numpy as np arr = np.array([3.1398, 3.1349, 3.1376]) print(arr) ``` - **ndarray的基本属性**: - `.ndim`:返回数组的维度数量。 - `.shape`:返回数组的形状。 - `.size`:返回数组中元素的总数。 - `.dtype`:返回数组中元素的数据类型。 - `.itemsize`:返回数组中每个元素所占的字节数。 - **示例**: - 创建并打印一个一维数组: ```python arr = np.array([3.1413, 3.1398, 3.1404, 3.1401, 3.1349, 3.1376]) print(Array:, arr) print(Dimension:, arr.ndim) print(Shape:, arr.shape) print(Size:, arr.size) print(Data Type:, arr.dtype) print(Item Size:, arr.itemsize) ``` 通过以上介绍可以看出,NumPy的`ndarray`不仅提供了一种高效的数据存储方式,还为Python编程环境带来了强大的数值计算能力。无论是进行简单的数学运算还是复杂的科学计算,NumPy都是不可或缺的工具之一。