NumPy是一个用于Python的库,提供大量的函数和工具,用于处理大型多维数组和矩阵,以及进行相关的数学运算。
常用函数
numpy数组创建
numpy.array()
: 创建一个数组。numpy.zeros()
: 创建一个所有元素都为0的数组。numpy.ones()
: 创建一个所有元素都为1的数组。numpy.eye()
: 创建一个单位矩阵。numpy.identity()
: 创建一个方阵,对角线上的元素为1,其余元素为0。
数组操作
numpy.sum()
: 求和。numpy.mean()
: 计算平均值。numpy.max()
: 找出最大值。numpy.min()
: 找出最小值。numpy.std()
: 计算标准差。numpy.var()
: 计算方差。numpy.shape()
: 获取数组的形状。
-
线性代数
numpy.linalg.inv()
: 计算矩阵的逆。numpy.linalg.det()
: 计算矩阵的行列式。numpy.linalg.eig()
: 计算特征值和特征向量。
数学函数
numpy.sin()
,numpy.cos()
,numpy.tan()
: 三角函数。numpy.exp()
,numpy.log()
: 指数和对数函数。numpy.sqrt()
: 开平方根。
数组排序和搜索
numpy.sort()
: 对数组进行排序。numpy.argsort()
: 返回排序后的索引。numpy.where()
: 返回满足条件的元素的索引。
文件读写
numpy.load()
, numpy.save()
: 用于读写二进制文件。
7.
随机数生成
numpy.random.rand()
: 生成0到1之间的随机数。numpy.random.randint()
: 生成指定范围内的随机整数。
线性代数操作
numpy.dot()
: 点乘(矩阵乘法)。numpy.cross()
: 叉乘(向量乘法)。
-
广播
广播是一种强大的机制,允许在执行算术运算时对不同形状的数组进行操作。例如,你可以将一个形状为(3,)的一维数组与一个形状为(3,3)的二维数组进行算术运算,而不需要改变任何数组的形状或大小。这种机制在NumPy中非常常见,并允许你以简洁、高效的方式处理复杂的数学运算。
示例
python
# 导入NumPy库
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])
print(arr)
# 创建一个所有元素都为0的数组
zeros_arr = np.zeros(5)
print(zeros_arr)
# 创建一个所有元素都为1的数组
ones_arr = np.ones(5)
print(ones_arr)
# 创建一个单位矩阵
eye_arr = np.eye(3)
print(eye_arr)
# 创建一个方阵,对角线上的元素为1,其余元素为0
identity_arr = np.identity(3)
print(identity_arr)
# 求和
sum_arr = np.sum(arr)
print(sum_arr)
# 计算平均值
mean_arr = np.mean(arr)
print(mean_arr)
# 找出最大值
max_arr = np.max(arr)
print(max_arr)
# 找出最小值
min_arr = np.min(arr)
print(min_arr)
# 计算标准差
std_arr = np.std(arr)
print(std_arr)
# 计算方差
var_arr = np.var(arr)
print(var_arr)
# 获取数组的形状
shape_arr = np.shape(arr)
print(shape_arr)
# 计算矩阵的逆
inv_arr = np.linalg.inv(eye_arr)
print(inv_arr)
# 计算矩阵的行列式
det_arr = np.linalg.det(eye_arr)
print(det_arr)
# 计算特征值和特征向量
eig_arr = np.linalg.eig(eye_arr)
print(eig_arr)
# 三角函数
sin_arr = np.sin(arr)
print(sin_arr)
cos_arr = np.cos(arr)
print(cos_arr)
tan_arr = np.tan(arr)
print(tan_arr)
# 指数和对数函数
exp_arr = np.exp(arr)
print(exp_arr)
log_arr = np.log(arr)
print(log_arr)
# 开平方根
sqrt_arr = np.sqrt(arr)
print(sqrt_arr)
# 对数组进行排序
sort_arr = np.sort(arr)
print(sort_arr)
# 返回排序后的索引
argsort_arr = np.argsort(arr)
print(argsort_arr)
# 返回满足条件的元素的索引
where_arr = np.where(arr > 2)
print(where_arr)
# 读写二进制文件
np.save('data.npy', arr)
loaded_arr = np.load('data.npy')
print(loaded_arr)
# 生成0到1之间的随机数
rand_arr = np.random.rand(5)
print(rand_arr)
# 生成指定范围内的随机整数
randint_arr = np.random.randint(1, 10, size=5)
print(randint_arr)
# 点乘(矩阵乘法)
dot_arr = np.dot(eye_arr, eye_arr)
print(dot_arr)
# 叉乘(向量乘法)
cross_arr = np.cross(eye_arr, eye_arr)
print(cross_arr)
# 广播(Broadcasting)
broadcast_arr = np.add(eye_arr, ones_arr)
print(broadcast_arr)