Python开发:NumPy学习(一)ndarray数组
一、数据维度
一个数据表达一个含义,一组数据表达一个或多个含义。
数据维度概念:一组数据的组织形式,其中有一维数据、二维数据、多维数据、高维数据。
1、 一维数据
一维数据由对等关系的有序或无序数据构成,采用线性方式组织。
对应:列表、集合
2、二维数据
二维数据由多个一维数据构成,是一维数据的组合形式。
对应:列表
3、多维数据
多维数据由一维或二维数据在新维度上扩展形成。
对应:列表
4、高维数据
高维数据仅使用最基本二元关系展示数据间的复杂结构。
对应:字典或数据表示格式
数据表示格式:JSON、XML、YAML等格式
二、NumPy
1、简介
NumPy是一个开源的科学计算基础库,是SciPy、Pandas等数据处理或科学计算库的基础。
2、主要功能:
(1)、提供了一个强大的N维数组对象ndarray:
优点:
1、数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据。
2、设置专门的数组对象,经过优化可以提升这类应用的运算速度。
3、数组对象采用相同的数据类型,有助于节省运算和存储空间。
实例:
(2)、提供了一组广播功能相关的函数,用来在数据间进行计算;
(3)、整合了C/C++/Fortran代码,并提供整合工具;
(4)、提供了线性代数、傅里叶变换、随机数生成等功能用于科学计算。
三、ndarray:
多维数组,由实际数据和描述这些数据的元数据(数据维度、数据类型)两部分构成。
一般要求所有元素类型相同,数组下标从0开始。
np.array()可以生成一个ndarray数组,输出成[]形式,元素由空格分割。
两个属性:
轴(axis):保存数据维度;秩(rank):轴的数量
ndarray对象的属性:
1、ndim:秩,轴数量或维度数量
2、shape:ndarray对象尺度,即n行m列
3、size:ndarray对象元素个数,为shape中n*m
4、dtype:ndarray对象的元素的类型
5、itemsize:ndarray对象中每个元素大小
四、ndarray的相关操作
1、创建:
(1)、从Python中的列表、元组等
(2)、使用NumPy中函数
函数 | 说明 |
arange(n) | 返回ndarray类型,元素从0到n-1 |
ones(shape) | 根据shape生成一个全1数组 |
zeros(shape) | 根据shape生成全0数组 |
full(shape,value) | 根据shape生成一个数组,每元素值全为value |
eye(n) | 一个正方形的n*n单位矩阵,对角线为1,其余为0 |
ones_like(a) | 根据数组a的形状生成一个全1数组 |
zeros_like(a) | 根据数组a的形状生成一个全0数组 |
full_like(a,value) | 根据数组a的形状生成一个数组,每元素值全为value |
linspace() | 根据起止数据等间距地填充数据,形成数组 |
concatenate() | 根据两个或多个数组合并成一个新数组 |
(3)、从字节流中
(4)、从文件中读取特定格式
2、变换
(1)、维度变换
reshape(不改变原数组)
resize(改变原数组)
(2)、元素类型变换
astype(返回一个新数组)
(3)、ndarray数组转化成列表
tolist()
3、索引
获取数组中特定位置元素的过程。
一维:和python列表的索引方式相同
多维:nd[x,y,z]
4、切片
获取数组元素子集的过程
一维:和python列表的切片方式相同
多维:
5、运算
数组与标量间的计算则为数组中每个元素与标量的计算。
示例:
函数如下:
函数 | 说明 |
abs(n) fabs(n) |
计算数组各元素的绝对值 |
sqrt(n) | 计算数组各元素的平方根 |
square(n) | 计算数组各元素的平方 |
rint(n) | 各元素四舍五入 |
modf(n) | 各元素的整数和小数部分分成两个独立数组 |
cos(n) | 三角函数 |
exp(n) | 各元素指数值 |
sign(n) | 各元素的符号值,正数显示+,负数显示-,0显示0 |
log(n) | 计算各元素对数 |
ceil(n) floor(n) |
计算各元素ceiling值或floor值 |
__EOF__

本文链接:https://www.cnblogs.com/guobin-/p/11211653.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?