Numpy库,矩阵形状与维度操作

目录

一.numpy库简介与安装

numpy库的安装

二.numpy核心功能

1.矩阵处理

2.数学运算

三.数据的维度与属性

1.维度管理

2.属性方法

四.数据类型与存储范围

五.矩阵形状与维度操作

六.数据升维与reshape()方法


一.numpy库简介与安装

NumPy是Python中用于科学计算的核心库之一,提供高性能的多维数组对象(ndarray)及工具,适用于数值计算、数据分析和机器学习等领域。

numpy库的安装

pip install numpy==1.23.5 -i 镜像源地址

注意:

若安装失败,需检查Python版本兼容性(如3.7/3.9适配1.x版本,避免2.x版本)。

二.numpy核心功能

1.矩阵处理

  • 将数据存储为矩阵(ndarray类型),显著提升计算速度(底层由C语言实现)。
  • 支持高维数据(如二维、三维矩阵),可通过numpy.array()转换列表为矩阵。

2.数学运算

  • 集成数学库功能(如sin, cos, abs等),支持矩阵转置、求逆、微分等高级运算。
  • 对比Python原生列表:numpy提供更丰富的数学操作且计算效率更高。

三.数据的维度与属性

1.维度管理

  • 一维矩阵(如[1 2 3 4 5 6])显示为无逗号排列。
    import numpy as np
    list =[1,2,3,4,5,6]
    print(np.array(list))
  • 高维矩阵(如三维)需通过索引(如z0, z1)查看不同层级数据。
    import numpy as np
    list =[1,2,3,4,5,6]
    z=np.array([[list,list,list],[list,list,list],[list,list,list]])
    

2.属性方法

  • cshape:返回矩阵形状(如(5,)表示一维5元素)。
    x=np.array([1,2,3,4,5])
    print(x.shape)

  • (3,3,6)表示三维数据,共有3×3×6个元素

    import numpy as np
    list =[1,2,3,4,5,6]
    m = np.array([list,list,list])
    y= np.array([m,m,m])
    print(y.shape)

  • ndim:返回维度数(如三维矩阵返回3)。
    import numpy as np
    list =[1,2,3,4,5,6]
    m = np.array([list,list,list])
    y= np.array([m,m,m])
    print(y.ndim)

  • dtype:查看数据类型(默认int32表示32位整数)。

四.数据类型与存储范围

  • int8 的最小值为 0(二进制全为 0),最大值为 256(二进制全为 1),实际存储范围为 0 到 255。
  • 自然界中的亮度值(如 RGB 颜色)范围是 0 到 255,因此计算机视觉中常用 int8 存储颜色值。
  • int32 的存储范围为 0 到 2³²,适用于大数值存储;float32 和 float64 用于高精度浮点数(如保留多位小数)。
  • 五.矩阵形状与维度操作

  • shape:描述矩阵的行列结构(如 3 行 5 列返回 (3, 5))。
  • ndim:返回矩阵的维度数(一维返回 1,二维返回 2)。
  • size:返回矩阵中元素的总数(如 15 个数据返回 15)。
    import numpy as np
    list =[1,2,3,4,5,6]
    m = np.array([list,list,list])
    print(m.size)

  1. dtype:返回矩阵元素的数据类型

    int8, int16, int32, int64: 表示不同长度的有符号整数。

    uint8, uint16, uint32, uint64: 表示不同长度的无符号整数。

    float16, float32, float64 (float 是 float64 的简写): 表示不同精度的浮点数。

    complex64, complex128 (complex 是 complex128 的简写): 表示复数,其中64和128表示复数的实部和虚部的位数。

    bool: 布尔类型,可以存储True或False。

    str_: 表示定长字符串,可以通过添加数字来指定字符串的长度,如 'S10' 表示长度为10的字符串。

    object: 表示Python对象类型,可以用来存储任意Python对象。

六.数据升维与reshape()方法

  • reshape:将一维数据转换为多维矩阵,需指定新形状(如 (4, 4) 将 16 个数据转为 4 行 4 列)。参数 newshape 可为元组(如 (4, 4))或使用 -1 自动计算维度(如 reshape(4, -1) 表示 4 行,列数自动推导为 4)。
    list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
    v=np.array(list1)
    print(v.reshape(4,4))

    list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
    v=np.array(list1)
    print(v.reshape(4,-1))

  • 三维转换示例:reshape(1, -1, 2) 将 16 个数据转为 1×8×2 的三维结构。
    list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
    v=np.array(list1)
    print(v.reshape(1,-1,2))

  • resize:调整矩阵大小,可直接修改原始数据到相应的维度返回值 Nonereshape()方法则返回的是修改后的矩阵而原来的矩阵并不会改变

    不返回计算结果,直接修改原始数组

    list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
    v=np.array(list1)
    r = v.resize(4,4)#直接会修改原始数据到相应的维度
    print(r)
    print(v)
    print(v.ndim)
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89880.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图论(2):最短路

最短路一、模板1. Floyd2. 01BFS3. SPFA4. Dijkstra(弱化版)5. Dijkstra(优化版)二、例题1. Floyd1.1 传送门1.2 无向图最小环1.3 灾后重建1.4 飞猪2. 01BFS2.1 Kathiresan2.2 障碍路线2.3 奇妙的棋盘3. SPFA3.1 奶牛派对3.2 营救…

“融合进化,智领未来”电科金仓引领数字化转型新纪元

一、融合进化 智领未来电科金仓2025产品发布会重磅开启! 7月15日,以“融合进化 智领未来”为主题的电科金仓2025产品发布会在北京举办。产品发布会上展示了四款代表未来数字化趋势的创新性产品。这些产品不仅涵盖了数据库技术,还涉及到数据集…

常规笔记本和加固笔记本的区别

在现代科技产品中,笔记本电脑因其便携性和功能性被广泛应用。根据使用场景和需求的不同,笔记本可分为常规笔记本和加固笔记本,二者在多个方面存在显著区别。适用场景是区分二者的重要标志。常规笔记本主要面向普通消费者和办公人群&#xff0…

Shell 脚本编程全面学习指南

前言Shell 脚本编程是 Linux 和 Unix 系统管理、自动化任务的核心工具之一。通过 Shell 脚本,你可以自动化重复性操作、简化复杂流程、提高系统管理效率,甚至构建完整的自动化运维工具。本文将带你从基础到进阶,全面学习 Shell 脚本编程&…

DelayQueue延迟队列的使用

1、DelayQueue简介 DelayQueue 也是 Java 并发包(java.util.concurrent)中的一个特殊队列,用于在指定的延迟时间之后处理元素。 DelayQueue的一些关键特性: 延迟元素处理:只有当元素的延迟时间到期时,元素才能被取出…

QT6 源,七章对话框与多窗体(6) 颜色对话框 QColorDialog :本类的属性,信号函数,静态成员函数,以及源代码

(1)本类的继承关系如下 :(2) 对于本标准颜色对话框来讲,学会使用其静态函数以获取到颜色就足够了。(3) 开始学习本类的静态成员函数 :(4)测试一下…

金仓数据库:融合进化,智领未来——2025年数据库技术革命的深度解析

引言 在数字中国战略的推动下,数据库作为数字经济的基础设施,正经历着前所未有的技术重构。2025年7月15日,电科金仓以"融合进化,智领未来"为主题,发布了新一代数据库产品矩阵,标志着国产数据库在…

【人工智能99问】卷积神经网络(CNN)的结构和原理是什么?(10/99)

文章目录卷积神经网络(CNN)的结构及原理一、CNN的核心结构1. 输入层(Input Layer)2. 卷积层(Convolutional Layer)2. 卷积层的核心机制:局部感受野与权值共享3. 池化层(Pooling Laye…

CCF编程能力等级认证GESP—C++7级—20250628

CCF编程能力等级认证GESP—C7级—20250628单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)线图调味平衡单选题(每题 2 分,共 30 分&…

《Python 类设计模式:属性分类(类属性 VS 实例属性)与方法类型(实例 / 类 / 静态)详解》

Python 类和对象:从 "图纸" 到 "实物" 的编程思维面向对象编程(Object-Oriented Programming,简称OOP )是一种通过组织对象来编程的方法。1.初识类和对象:用生活例子看透核心概念1.1类-class物与类…

Eureka服务端启动

目录 1、相关文章 2、创建eureka-server子工程 3、父工程build.gradle引入版本依赖管理 4、子工程build.gradle引入依赖 5、将main重命名为EurekaApplication并修改代码 6、添加application.yml文件 7、启动工程并访问 8、访问界面如下 9、 完整目录结构 1、相关文章 …

AWS Partner: Sales Accreditation (Business)

AWS Partner: Sales Accreditation (Business)云概念和AWS云计算什么是云计算?计算的演变趋势云计算部署模型AWS 客户采用的模式为什么客户选择AWSAWS竞争优势高可用的全球基础设施AWS服务服务广度和深度AWS产品和服务服务类别AWS解决方案库A…

深入理解设计模式之中介者模式:解耦对象交互的利器

为什么需要中介者?在软件开发中,我们经常会遇到对象之间需要相互通信的场景。当系统规模较小时,对象直接相互引用并通信可能不会带来太大问题。但随着系统复杂度增加,对象间的交互关系会变得错综复杂,形成一个复杂的网…

从 0 安装 Label Studio:搭建可后台运行的数据标注平台(systemd 实践

本文将介绍如何使用 pip 安装 Label Studio,并通过 systemd 实现开机自启与后台运行,适用搭建个人项目的数据标注平台。 一、Label Studio 简介 Label Studio 是一个开源、跨模态的数据标注工具,支持文本、图像、音频、视频、HTML等多种类型…

【数据结构】链表(linked list)

目录 一、链表的介绍 二、单链表 1. 单链表的初始化 2. 单链表的插入 (1)动态申请一个节点 (2)头插法 (3)尾插法 (4)按照位置来插入 (5)在地址之前插…

反序列化漏洞1-PHP序列化基础概念(0基础超详细)

一.PHP序列化基础概念首先当我们看到反序列化漏洞这个概念,我们的第一个问题是什么是反序列化?那么我们要知道什么是反序列化就要知道什么是序列化。序列化就是可以将一个对象压缩并格式化成字符串,可以将该对象保存下来,以便存储…

【微服务】Ocelot微服务网关

目录 一、目的 二、Ocelot介绍 三、.Net中使用Ocelot搭建网关服务 3.1 搭建网关Ocelot步骤 3.1.1、创建Net7 WebApi服务 3.1.2、Nuget引入-Ocelot程序包(版本:19.0.2) 3.1.3、配置中间件和IOC注册 3.1.4 配置文件编辑Ocelot网关配置信…

零基础入门:用按键精灵实现视频自动操作(附完整脚本)

摘要:本文手把手教你编写视频平台的自动化脚本,涵盖点击、循环、防检测等核心技巧,无需编程基础,轻松实现自动播放/点赞/跳过广告。(使用按键精灵2024版演示) 一、应用场景 自动化操作:自动跳过…

AI(学习笔记第六课) 使用langchain进行AI开发 load documents(csv和文件夹)

文章目录AI(学习笔记第六课) 使用langchain进行AI开发 load documents(csv和文件夹)学习内容:1.load documents(csv)1.1 学习url1.2 load csv文件1.2.1 默认load1.2.2 csv文件内容1.2.2 执行csv文件的load1.3 Customizing the CSV parsing an…

企业运维实战:Jenkins 依赖 JDK21 与应用需 JDK1.8 共存方案(含流水线配置)

前言:在企业运维中,“工具升级”与“业务兼容”的平衡始终是核心挑战。近期我们遇到一个典型场景:Jenkins 升级到 2.450 版本后,强制要求 JDK21 运行环境;但开发团队的应用程序因框架依赖,必须使用 JDK1.8 …