numpy总结
numpy具有如下功能:
- ndarray数组:一个具有矢量算术运算和复杂广播能力的多维数组,具有快速且节省空间的特点;
- 对整组数据进行快速运算的标准数学函数(无需编写循环);
- 线性代数、随机数生成以及傅里叶变换功能;
- 读写磁盘数据、操作内存映射文件。
简单使用:
import numpy as np
a=np.array([1,2,3,4])
numpy的基本结构是narray数组,narray数组有如下优点:
- ndarray数组中所有元素的数据类型相同、数据地址连续,批量操作数组元素时速度更快。而list列表中元素的数据类型可能不同,需要通过寻址方式找到下一个元素。
- ndarray数组支持广播机制,矩阵运算时不需要写for循环。
- NumPy底层使用C语言编写,内置并行计算功能,运行速度高于Python代码。
#创建数组
# 从list创建array a = [1,2,3,4,5,6] # 创建简单的列表 b = np.array(a) # 将列表转换为数组
c = np.arange(0,10,2)#创建元素从0到10依次递增二的数组
#创建3x3全零的数组
a = np.zeros([3,3])
#创建3x3全1的数组
np.ones([3,3])
查看ndarray数组的属性
shape
:数组的形状 ndarray.shape,1维数组(N, ),二维数组(M, N),三维数组(M, N, K)。dtype
:数组的数据类型。size
:数组中包含的元素个数 ndarray.size,其大小等于各个维度的长度的乘积。ndim
:数组的维度大小,ndarray.ndim, 其大小等于ndarray.shape所包含元素的个数。
改变ndarray数组的数据类型和形状
b = a.astype(np.int64)#把a数组的元素的数据类型全改为int64
c = a.reshape([1, 9])#把a的形状改为1x9
ndarray数组的基本运算
- 标量和ndarray数组之间的运算(数组的每个元素都和标量做运算)
- 两个ndarray数组之间的运算(数组的对应元素做运算)
数组切片
a = np.arange(30)
b = a[4:7]#b=[4,5,6]
ndarray数组的统计方法
mean
:计算算术平均数,零长度数组的mean为NaN。std
和var
:计算标准差和方差,自由度可调(默认为n)。sum
:对数组中全部或某轴向的元素求和,零长度数组的sum为0。max
和min
:计算最大值和最小值。argmin
和argmax
:分别为最大和最小元素的索引。cumsum
:计算所有元素的累加。cumprod
:计算所有元素的累积。
#例
arr = np.array([[1,2,3], [4,5,6], [7,8,9]]) arr.mean(), np.mean(arr)
随机数np.random
np.random.rand(3, 3)#生成3x3的均匀分布
np.random.randn(3, 3)#生成3x3的标准正态分布
随机打乱ndarray数组顺序
# 生成一维数组 a = np.arange(0, 30) print('before random shuffle: ', a) # 打乱一维数组顺序 np.random.shuffle(a) print('after random shuffle: ', a)
线性代数
diag
:以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换为方阵(非对角线元素为0)。dot
:矩阵乘法。trace
:计算对角线元素的和。det
:计算矩阵行列式。eig
:计算方阵的特征值和特征向量。inv
:计算方阵的逆。
NumPy保存和导入文件
文件读写
# 使用np.fromfile从文本文件'housing.data'读入数据 # 这里要设置参数sep = ' ',表示使用空白字符来分隔数据 # 空格或者回车都属于空白字符,读入的数据被转化成1维数组 d = np.fromfile('./work/housing.data', sep = ' ')
文件保存
# 产生随机数组a a = np.random.rand(3,3) np.save('a.npy', a) # 从磁盘文件'a.npy'读入数组 b = np.load('a.npy') # 检查a和b的数值是否一样 check = (a == b).all() check # True
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)