NumPy的ndarray常用属性和索引你学会了吗

1.ndarray的4个重要属性

  • ndim:返回数组的维度数。例如,一维数组的ndim为1,二维数组的ndim为2

  • shape:返回数组的形状,即各个维度的大小。例如,对于一个二维数组,shape会返回一个包含行数和列数的元组

  • size:返回数组中元素的总数

  • dtype:返回数组中元素的数据类型。NumPy支持多种数据类型,包括整数、浮点数、复数等

# 数据分析三剑客
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# python.png
# 图片:其实是数字组成的,三维数组
# RGB:红Red,绿Green,蓝Blue
# RGB范围:0-255
# plt.imread:读取图片的数据
pyimg = plt.imread("python.png")
pyimg

# 查看形状
pyimg.shape
# 执行结果
(539, 1080, 4)
# 有几个数字就表示几维
# (539, 1080, 4) ,表示三维数组
# 第一个维度:539,第二维度:1080,第三维度:4

# 查看维度
pyimg.ndim
# 执行结果
3

# 查看总数据量
pyimg.size
# 执行结果:539 * 1080 * 4
2328480

# 查看元素类型
pyimg.dtype
# 执行结果
dtype('float32')

2.一维与列表完全一致,多维时同理

  • 基本索引:通过索引值访问数组中的元素。在Python中,索引通常从0开始

  • 切片索引:通过指定起始索引、结束索引和步长来访问数组中的一部分元素。切片操作返回的是原数组的一个视图,而不是一个新的数组

  • 整数数组索引:使用整数数组作为索引,可以一次性访问多个元素

  • 布尔索引:使用布尔数组作为索引,可以访问满足特定条件的元素

# 一维数组
l = [1,2,3,4,5,6]
l[0],l[-1]

# 执行结果
(1, 6)

# 一维数组
n = np.array(l)
n[0],n[-1]
# 执行结果
(1, 6)

# 二维数组
n = np.random.randint(0,10,size=(4,5))
n
# 执行结果
array([[5, 3, 9, 5, 1],
       [9, 9, 9, 5, 8],
       [6, 7, 5, 1, 4],
       [9, 4, 6, 4, 9]])
       
# 找到最后一个数
# n[3][4]
# n[-1][-1]
# 简写
# n[3,4]
n[-1,-1]
# 执行结果
9

# 三维数组
n = np.random.randint(0,100,size=(4,5,6))
n
# 执行结果
array([[[ 0,  2, 28, 10, 75, 82],
        [52, 60,  2,  4, 27, 68],
        [68, 37, 26, 35, 57, 59],
        [92,  1, 23, 90, 12, 60],
        [99, 64, 20, 31, 71, 10]],

       [[59, 45, 91,  2, 36, 99],
        [97, 46, 91, 78, 70, 85],
        [58, 81, 86, 53, 62, 97],
        [45, 93, 67, 17, 63, 91],
        [ 7, 19, 17, 95, 67, 96]],

       [[94, 86, 95,  0, 19, 13],
        [80, 89, 56, 53, 57, 97],
        [ 6, 82,  4, 40, 59, 38],
        [42, 35, 64, 55, 89, 98],
        [74, 14, 17, 88, 22, 52]],

       [[16, 75, 96, 47, 96,  9],
        [74, 33, 84, 24, 10, 14],
        [36, 47, 85, 91, 40, 76],
        [46, 79, 50, 68, 35, 96],
        [46,  7, 85, 14, 95, 22]]])

# 找到第二个数组的第三行最后一个数
# n[1][2][-1]
n[1,2,-1]
# 执行结果
97

3.根据索引修改数据

# 修改第二个数组的第三行最后一个数
n[1,2,-1] = 997
n
# 执行结果
array([[[  0,   2,  28,  10,  75,  82],
        [ 52,  60,   2,   4,  27,  68],
        [ 68,  37,  26,  35,  57,  59],
        [ 92,   1,  23,  90,  12,  60],
        [ 99,  64,  20,  31,  71,  10]],

       [[ 59,  45,  91,   2,  36,  99],
        [ 97,  46,  91,  78,  70,  85],
        [ 58,  81,  86,  53,  62, 997],
        [ 45,  93,  67,  17,  63,  91],
        [  7,  19,  17,  95,  67,  96]],

       [[ 94,  86,  95,   0,  19,  13],
        [ 80,  89,  56,  53,  57,  97],
        [  6,  82,   4,  40,  59,  38],
        [ 42,  35,  64,  55,  89,  98],
        [ 74,  14,  17,  88,  22,  52]],

       [[ 16,  75,  96,  47,  96,   9],
        [ 74,  33,  84,  24,  10,  14],
        [ 36,  47,  85,  91,  40,  76],
        [ 46,  79,  50,  68,  35,  96],
        [ 46,   7,  85,  14,  95,  22]]])
        
# 修改第二个数组的第三行整行数据
n[1,2] = [1,2,3,4,5,6]
n[1,2]
# 执行结果
array([[[ 0,  2, 28, 10, 75, 82],
        [52, 60,  2,  4, 27, 68],
        [68, 37, 26, 35, 57, 59],
        [92,  1, 23, 90, 12, 60],
        [99, 64, 20, 31, 71, 10]],

       [[59, 45, 91,  2, 36, 99],
        [97, 46, 91, 78, 70, 85],
        [ 1,  2,  3,  4,  5,  6],
        [45, 93, 67, 17, 63, 91],
        [ 7, 19, 17, 95, 67, 96]],

       [[94, 86, 95,  0, 19, 13],
        [80, 89, 56, 53, 57, 97],
        [ 6, 82,  4, 40, 59, 38],
        [42, 35, 64, 55, 89, 98],
        [74, 14, 17, 88, 22, 52]],

       [[16, 75, 96, 47, 96,  9],
        [74, 33, 84, 24, 10, 14],
        [36, 47, 85, 91, 40, 76],
        [46, 79, 50, 68, 35, 96],
        [46,  7, 85, 14, 95, 22]]])

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker in Docker原理与实战探索

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

使用CyberRT写第一个代码

0. 简介 计算框架是自动驾驶系统中的重中之重,也是整个系统得以高效稳定运行的基础。为了实时地完成感知、决策和执行,系统需要一系列的模块相互紧密配合,高效地执行任务流。由于各种原因,这些模块可能位于不同进程,也…

Android Studio 打开Logcat界面

在平时调试过程中查看调试日志需要打开 Android Studio Logcat界面。 每次安装AS都会忘记,自己备注一下。 AS->View->Tool Windows->Logcat

Windows12安装Docker

环境及工具(文末提供) Docker Desktop Installer.exe (官网) 一、查看windows相关配置 查看是否开启相应的功能,如果没有需要开启,然后重启电脑 打开任务管理器(CTRLSHIFTESC)-&g…

【Linux】进程控制详解

目录 前言 进程创建 认识fork 写时拷贝 再谈fork 进程终止 进程退出码 用代码来终止进程 常见的进程终止的方式 exit _exit 进程等待 进程等待的必要性 进程等待的方式 wait waitpid 详解status参数 详解option参数 前言 本文适合有一点基础的人看的&#…

【JavaScript】函数 ⑥ ( 使用 arguments 获取所有实参 | arguments 内置对象 | 伪数组概念 )

文章目录 一、使用 arguments 获取所有实参1、arguments 内置对象2、伪数组概念3、arguments 实参遍历4、arguments 代码示例 - 基本使用5、arguments 代码示例 - 遍历实参 一、使用 arguments 获取所有实参 1、arguments 内置对象 在 定义 JavaScript 函数 时 , 有时 不确定 形…

Spring定义Bean对象笔记(二)

前言:上一篇记录了通过XML文件来定义Bean对象,这一篇将记录通过注解和配置类的方式来定义Bean对象。 核心注解: 定义对象:Component,Service,Repository,Controller 依赖注入: 按类型:Autowired 按名称&am…

cesium 加载mapbox底图 黑色主题底图 84底图

cesium提供MapboxStyleImageryProvider,加载mapbox的影像图层,底图是84坐标系。 viewer.imageryLayers.addImageryProvider(new Cesium.MapboxStyleImageryProvider({styleId: dark-v11,accessToken: mapbox的token})); 效果图:加载mapbox黑…

简单使用bootstrap-datepicker日期插件

目录 下载datepicker 方式一: 方式二: 下载依赖 下载bootstarp.js 下载jquery 使用示例 日期选择 单独选择年 单独选择月 单独选择日 设置截止日期 设置默认日期 总结 下载datepicker 方式一: 下载地址 GitHub - uxsolution…

java运行时内存

从jdk1.7以及以后,静态变量和常量池存在堆空间。

关于搭建电商独立站跨境电商接入主流电商平台API商品接口对于商品功能模块的巨大应用

功能设计 首先我们来看下mall项目中商品功能的设计,主要包括商品管理、添加\编辑商品、商品分类、商品类型、品牌管理等功能,这里的功能同时涉及前台商城和后台管理系统。 商品管理【接入主流电商平台商品API接口丰富自建商城商品】 在mall项目的后台管…

JavaScript基础(5)之对象的方法和调用

JavaScript基础5之对象的方法和调用 对象对象使用语法属性和访问方法和调用null遍历对象 内置对象Math属性方法 基本数据类型和引用数据类型堆栈空间分配区别:简单类型的内存分配复杂类型的内存分配 对象 对象是 JavaScript 数据类型的一种,之前已经学习…

填谷式无源PFC电路

目录: 1、概述 2、原理 1、概述 如果不采用PFC,那么典型开关模式电源的功率因数约为0.6,因而会有相当大的奇次谐波失真(第三谐波有时和基本谐波一样大)。令功率因数小于1以及来自峰值负载的谐波减少了运行设备可用的实际功率。为运行这些低…

书生·浦语2.0体系技术报告

前言 本文是书生浦语二期实战营课程视频笔记,如果需要详细视频教程可自行搜索。 InternLM2 InternLM2-Base 高质量和具有很强可塑性的模型基座,是模型进行深度领域适配的高质量起点InternLM2 在Base基础上,在多个能力方向进行了强化&#x…

WSL安装与使用

开启之后,会提示你重启电脑才能使配置生效,我们重启即可。 电脑重启后,打开Microsoft Store搜索WSL,既可以看到支持的操作系统,我们选择Ubuntu即可,我们选择第一个就可以。 随后我们打开,发现报…

提升办公效率,一起了解流程自定义表单优势

提高办公效率,可以一起了解低代码技术平台。对于很多中小型企业而言,低代码技术平台及流程自定义表单优势突出,是助力企业实现流程化办公,实现数字化转型的得力助手。流辰信息是专业研发开发平台、数据治理、数据分析等产品的服务…

软考 系统架构设计师系列知识点之云原生架构设计理论与实践(13)

接前一篇文章:软考 系统架构设计师系列知识点之云原生架构设计理论与实践(12) 所属章节: 第14章. 云原生架构设计理论与实践 第3节 云原生架构相关技术 14.3.2 云原生微服务 1. 微服务发展背景 过去开发一个后端应用最为直接的方…

软件架构风格_4.虚拟机体系结构风格

虚拟机体系结构风格的基本思想是人为构建一个运行环境,在这个环境之上,可以解析与运行自定义的一些语言,这样来增加架构的灵活性。虚拟机体系结构风格主要包括解释器风格和规则系统风格。 1.解释器体系结构风格 一个解释器通常包括完成解释工…

Win11 绕过 TPM 或 CPU 检测

方法 1:修改注册表绕过 TPM 或 CPU 检测(升级安装) 如果你的硬件不完全符合安装 Windows 11 的基本硬件要求,可以通过修改注册表,在至少拥有 TPM 1.2 和不支持的 CPU 上升级安装 Windows 11 系统. 适用场景&#xff…

Nginx是什么?

一、什么是Nginx? Nginx是一个高性能的HTTP和反向代理Web服务器 二、Nginx有什么优点 Nginx稳定性好、资源消耗低、配置简单、功能丰富 1、作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高 2、作为代理服务器,Nginx可以…