numpy第三方库学习(更新中)
介绍
NumPy
是 Python 中用于科学计算的基础库,它提供了高性能的多维数组对象和处理这些数组的工具。
pip install numpy
pip
pip
是 Python 的包管理工具,下面是一些 pip
的常用命令:
显示pip的版本:
pip --version
查看 pip 命令的帮助信息:
pip --help
查看已安装的包:
pip list
安装最新版本的包:
pip install package_name
安装指定版本的包:
pip install package_name==version_number
升级指定的包到最新版本:
pip install --upgrade package_name
卸载指定的包:
pip uninstall package_name
查看包的详细信息:
pip show package_name
指定镜像源下载:
pip install package_name -i link
数组创建
1. 从列表创建一维数组
import numpy as np# 从列表创建一维数组
lst = [1,2,3,4,5]
arr = np.array(lst)
print("一维数组:", arr)
运行结果:
一维数组: [1 2 3 4 5]
(说明:np.array 将 Python 列表转换为 NumPy 一维数组,元素类型默认是 int64,输出时元素间用空格分隔。)
2. 创建二维数组
# 创建一个二维数组
arr = np.array([[1,2,3,4],[5,6,7,8]])
print("二维数组:", arr)
运行结果:
二维数组: [[1 2 3 4][5 6 7 8]]
(说明:传入嵌套列表[[行1], [行2]]
,生成 2 行 4 列的二维数组,输出时会按行分行显示,保持矩阵结构。)
3. 创建全 0 矩阵
# 全0矩阵
arr = np.zeros((3,4)) # 参数(行数, 列数),默认元素类型是float64
print("全0矩阵:")
print(arr)
运行结果:
全0矩阵:
[[0. 0. 0. 0.][0. 0. 0. 0.][0. 0. 0. 0.]]
(说明:np.zeros 生成指定形状的矩阵,所有元素为 0,默认是浮点数(带小数点),若需整数可加dtype=int
参数。)
4. 创建全 1 矩阵
# 全1矩阵
arr = np.ones((3,4)) # 参数(行数, 列数),默认元素类型float64
print("全1矩阵:")
print(arr)
运行结果:
全1矩阵:
[[1. 1. 1. 1.][1. 1. 1. 1.][1. 1. 1. 1.]]
(说明:类似全 0 矩阵,所有元素为 1,默认浮点数,可通过dtype=int
改为整数。)
5. 创建指定值的全 n 矩阵(3 维)
# 创建指定的全n矩阵(这里是3维矩阵,值为8)
arr = np.full((3,4,5), 8) # 参数(维度1, 维度2, 维度3, ...),值为8
print("全n矩阵:")
print(arr)
运行结果:
全n矩阵:
[[[8 8 8 8 8][8 8 8 8 8][8 8 8 8 8][8 8 8 8 8]][[8 8 8 8 8][8 8 8 8 8][8 8 8 8 8][8 8 8 8 8]][[8 8 8 8 8][8 8 8 8 8][8 8 8 8 8][8 8 8 8 8]]]
(说明:np.full 生成任意指定值的矩阵,这里(3,4,5)
表示 3 个 “4 行 5 列” 的二维矩阵,构成 3 维数组,所有元素为 8。)
6. 创建等差数列矩阵
# 创建等差数列矩阵([start, stop),步长step)
arr = np.arange(0,10,2) # 起始0,终止10(不包含10),步长2
print("等差数列矩阵:")
print(arr)
运行结果:
等差数列矩阵:
[0 2 4 6 8]
(说明:np.arange 类似 Python 的 range,但返回 NumPy 数组,支持浮点数步长(如np.arange(0,5,0.5)
)。)
7. 创建等间距矩阵(包含终止值)
# 创建等间距的矩阵(将[start, stop]等分成num份)
arr = np.linspace(0,1,5) # 起始0,终止1(包含1),分成5份
print("等间距矩阵:")
print(arr)
运行结果:
等间距矩阵:
[0. 0.25 0.5 0.75 1. ]
(说明:np.linspace 按 “份数” 划分区间,确保包含终止值,元素间间距相等(这里间距是 (1-0)/(5-1)=0.25),常用于生成绘图的横坐标。)
8. 创建随机整数矩阵(并重塑形状)
# 创建随机整数矩阵:[0,10)的整数,共20个,再重塑为4×5矩阵
arr = np.random.randint(10, size=20).reshape(4,5) # randint(上限, 元素总数)
print("随机矩阵:")
print(arr)
运行结果(示例,每次运行不同):
随机矩阵:
[[3 7 2 9 5][1 8 0 4 6][2 5 7 3 1][9 0 4 8 2]]
(说明:
np.random.randint(10, size=20)
生成 20 个 [0,10) 的随机整数,是一维数组;reshape(4,5)
将一维数组重塑为 4 行 5 列的二维矩阵(元素总数必须相等:4×5=20);- 随机数每次运行不同,上述仅为示例结果。)
9. 持久化存储矩阵(保存到硬盘)
# 持久化数据:将矩阵保存为.npy文件(NumPy专用二进制格式)
np.save("data", arr) # 第一个参数是文件名(无需加.npy后缀,自动添加),第二个是要保存的数组
print("矩阵已保存为 data.npy 文件")
运行结果:
矩阵已保存为 data.npy 文件
(说明:运行后会在当前代码所在文件夹生成data.npy
文件,该文件是二进制格式,仅能通过 NumPy 的np.load
读取,保存时会保留数组的形状、类型等信息。)
10. 读取持久化的矩阵
# 读取持久化数据:加载.npy文件中的矩阵
arr = np.load("data.npy")
print("读取的持久化矩阵:")
print(arr)
运行结果(与第 8 步的随机矩阵完全一致):
读取的持久化矩阵:
[[3 7 2 9 5][1 8 0 4 6][2 5 7 3 1][9 0 4 8 2]]
(说明:np.load
会还原保存时的数组结构和元素,因此读取结果与第 8 步生成的随机矩阵完全相同(即使关闭代码重新运行,只要data.npy
不被修改,读取结果就不变)。)
数组的属性
可以通过数组的属性来获取数组的相关信息。
import numpy as nparr = np.random.randint(10, size=24).reshape(2,3,4)# 维度
print(arr.ndim)
# 形状
print(arr.shape)
# 数据总数
print(arr.size)
# 元素类型
print(arr.dtype) #int32 4字节整数