目录
一、简介
1、概念
NumPy(Numerical Python)是一个用于科学计算的 Python 库,提供了多维数组对象(ndarray)以及数学函数,用于处理大规模数据集和执行数值计算。
2、优点
当数据量达到一定级别后,NumPy 计算会比原生 Python 快。
import time
start_time = time.time()
numbers = list(range(1, 1000001))
total = sum(numbers)
end_time = time.time()
print("原生 Python 计算100万个元素的和耗时:", end_time - start_time)
import time
import numpy as np
start_time = time.time()
numbers = np.arange(1, 1000001)
total = np.sum(numbers)
end_time = time.time()
print("NumPy 计算100万个元素的和耗时:", end_time - start_time)
3、特点
Numpy 的主要对象是同种元素的多维数组。这是⼀个所有的元素都是⼀种类型、通过⼀个正整数元组索引的元素表格(通常是元素是数字)。在 Numpy 中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。
NumPy 数组是⼀个多维数组对象,称为 ndarray。由两部分组成:实际的数据和描述这些数据的元数据。
4、作用
可以构造⼀个比普通列表大的多的数组,并且可以很灵活的对其中所有的元素进行并行化操作。
5、引用
pip install numpy
import numpy as np # 导入 NumPy 库并使用别名 np
二、创建数组
1、创建一维数组
一维数组是最简单的数组形式,也被称为向量,它只有一个维度,即行(或列)。
一维数组类似于 Python 中的列表,但它可以包含相同类型的数据元素。
一维数组在数学和计算中常用于表示一系列数据点或向量。
创建方式
- 直接传入列表的方式
import numpy as np # 导入 NumPy 库并使用别名 np
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1) # [1 2 3 4 5]
- 传入 range 生成序列
import numpy as np # 导入 NumPy 库并使用别名 np
arr2 = np.array(range(1, 6))
print(arr2) # [1 2 3 4 5]
- 使用 numpy 自带的 np.arange() 生成数组
import numpy as np # 导入 NumPy 库并使用别名 np
# np.arange(起始索引,结束索引,步长)
arr3 = np.arange(1, 6, 2)
print(arr3) # [1 3 5]
- 使用 np.linspace() 生成等间隔的数组
import numpy as np # 导入 NumPy 库并使用别名 np
# np.linspace(起始索引,结束索引,步长)
arr4 = np.linspace(1, 5, num=5)
print(arr4) # [1. 2. 3. 4. 5.]
3、创建二维数组
- 二维数组是具有两个维度的数据结构,通常表示矩阵。
- 第一个维度表示行数,第二个维度表示列数。
- 二维数组在数学和计算中用于表示表格数据、图像、矩阵等多种数据结构。
import numpy as np # 导入 NumPy 库并使用别名 np
# 创建包含2行3列的二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
# [[1 2 3]
# [4 5 6]]
# 创建一个2x3的二维数组,其中每个元素都是0
arr = np.array([[0, 0, 0], [0, 0, 0]])
print(arr)
# [[0 0 0]
# [0 0 0]]
# 创建一个2x3的全0二维数组
arr = np.zeros((2, 3))
print(arr)
# [[0. 0. 0.]
# [0. 0. 0.]]
# 创建一个2x3的全1二维数组
arr = np.ones((2, 3))
print(arr)
# [[1. 1. 1.]
# [1. 1. 1.]]
# 创建一个2x2的单位矩阵
arr = np.eye(2)
print(arr)
# [[1. 0.]
# [0. 1.]]
三、属性和数组运算
1、基本属性
- 元素个数:size
- 元素类型:dtype
- 元素字节大小:itemsize
- 秩:ndim
- 维度:shape
- 元素缓冲区:data
import numpy as np # 导入 NumPy 库并使用别名 np
arr = np.array([1,