当前位置: 首页 > news >正文

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.dtcms.com/a/289479.html

相关文章:

  • 矩阵算法题
  • ZYNQ创新实践:免IIC驱动直控MCP4661T数字电位器
  • ollama基本配置
  • 仙盟数据库应用-外贸标签打印系统 前端数据库-V8--毕业论文-—-—仙盟创梦IDE
  • 数据库操作丨C++ 操作 数据库——SQLServer 篇
  • 数据库技术总结
  • 激光雷达和相机在线标定
  • 试用SAP BTP 06:AI服务-Data Attribute Recommendation
  • Java行为型模式---解释器模式
  • 30天打牢数模基础-XgBoost讲解
  • 第四章第一节 OLED 调试工具
  • 【LeetCode 热题 100】200. 岛屿数量——DFS
  • 20250720-3-Kubernetes 调度-资源限制对Pod调度的影响(2)_笔记
  • 隧道无线调频广播与“群载波”全频插播技术在张石高速黑石岭隧道中的应用
  • 数据结构第二章:线性表之顺序表
  • Kubernetes (K8S)知识详解
  • 【k8s集群管理平台】k8s运维管理的新玩法,让运维电脑随时不离身的现状成为过去
  • 【论文研读】SlowFast Networks for Video Recognition
  • 2024年全国青少年信息素养大赛Scratch算法创意实践挑战赛 小高组 初赛 真题
  • http基础一
  • HarmonyOS 启动提速秘籍:懒加载全链路实战解析
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘lxml’问题
  • 红宝书单词学习笔记 list 51-75
  • 基于Chinese-LLaMA-Alpaca-3的多模态中医舌诊辅助诊断系统设计与实现
  • securecrt连接服务器报错 Key exchange failed 怎么办
  • QFutureInterface和QFuture间联系与区别
  • 力扣 hot100 Day50
  • Transformers基础组件—Model(上)
  • shared_ptr创建方式以及循环引用问题
  • MES系列 - MES是提升制造执行效率与透明度的关键系统