【ndarry的基本操作】——numpy03

news2024/11/24 0:57:13

目录索引

  • ==基本索引和切片:==
    • 普通索引:
    • 省略索引:
    • 多省略索引:
    • 间隔索引:
  • ==形态变换操作:==
    • reshape():
    • resize():
    • transpose():
      • *通过参数进行转置:*
    • flatten():

基本索引和切片:

与序列一样可以进行索引和切片,且方式类似,开始序号从0开始,可在不同维度进行。

普通索引:

创建的是一个三维数组,把它想象成是一个两层的房间,每一层的房间布局是三行三列,共有十八个房间,每个房间里面存放着这些数字

import numpy as np
arr = np.array([
    [[1,2,3],[4,5,6],[7,8,9]],
    [[6,5,4],[7,7,2],[3,6,8]]
])
print(arr[0,0,0]) #1
print(arr[1,2,2]) #8

当然切片也可以这么写:arr[0][0][0]

省略索引:

如果你想获取某一个维度的所有信息,就用英文冒号来替代。比如说我要提取第一层所有行第1列的房间,那么可以用冒号来替代第二个下标

import numpy as np
arr = np.array([
    [[1,2,3],[4,5,6],[7,8,9]],
    [[6,5,4],[7,7,2],[3,6,8]]
])
print(arr[0,:,1]) #[2 5 8]

多省略索引:

可以使用多个冒号来省略多个维度的信息

import numpy as np
arr = np.array([
    [[1,2,3],[4,5,6],[7,8,9]],
    [[6,5,4],[7,7,2],[3,6,8]]
])
print(arr[0,:,:]) #相当于获取第一层的所有信息

在这里插入图片描述

间隔索引:

import numpy as np
arr = np.array([
    [[1,2,3],[4,5,6],[7,8,9]],
    [[6,5,4],[7,7,2],[3,6,8]]
])
print(arr[0,0:3,:]) #默认步长为1,与序列切片类似
print("-"*80)
print(arr[1,0:3:2,1]) #第二层,第0行和第2行,分别取出第1列

在这里插入图片描述

每一个元素都可以像序列切片那样增加起始值,终值(不包含终值),步长。相当于用这个切片来替代那一个元素

形态变换操作:

数组是组织数据的一种手段,不同的数据集,可以用一维、二维、三维,甚至更高维的数组来组织。因此有必要了解ndarray的形态变换操作

reshape():

改变数组的形状,返回一个指定形状的数组。请注意:reshape()函数不会改变原数组

import numpy as np
arr = np.arange(2,10)
result = arr.reshape((2,4)) #10-2 要等于 2*4才能创建
print(result)
print("-"*80)
print(arr)

在这里插入图片描述

一般来说,reshape跟arange使用可以迅速创建数组。且reshape并不会改变原数组

resize():

把原数组直接变为指定新形状的数组,并返回空值(若用一个数值去接收,那么这个数值是空值)

import numpy as np
arr = np.arange(2,10)
result = arr.resize((5,2)) #10-2 要等于 5*2才能创建
print(result)#用变量接收之后返回的是空值:None
print("-"*80)
print(arr)#不用变量接收,也可以正常获取结果

注意: resize会改变原数组的形状

transpose():

对数组按轴进行转置操作,也称维度的变换,返回转置后的新数组

import numpy as np
arr = np.arange(2,10)
result = arr.reshape(4,2)
result1 = result.transpose()
print(result) #4*2
print("-"*80)
print(result1) #2*4

在这里插入图片描述

通过参数进行转置:

如果transpose()函数,如果参数为空,执行的是维度的完全转置。当需要按指定维度转置时,可以在参数中使用元组的方式重新编排轴的顺序。

import numpy as np
arr = np.arange(24).reshape((2,3,4)) #创建一个三维数组
print(arr)
print("-"*80)
print(arr.transpose()) # 完全转置,轴的顺序从(0,1,2)变为(2,1,0)
print("-"*80)
print(arr.transpose((0,2,1))) #执行的是行列转置

在这里插入图片描述
在这里插入图片描述

flatten():

该函数用来展平数组,也就是把高维数组转化为一维数组,该函数会返回一个新的一维数组。(我愿称之为降维打击),注意该函数并不会改变原函数

import numpy as np
arr = np.arange(24).reshape((2,3,4)) #创建一个三维数组
result = arr.flatten()
print(arr)
print("-"*80)
print(result)

在这里插入图片描述

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

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

相关文章

usb转8路串口模块

开源USB转8路串口PCB设计 文章目录 开源USB转8路串口PCB设计1. 简介2. 说明3. 一种跨电脑跨USB口的端口号自动识别方法4.开源地址 今天给大家介绍一款USB转8路串口的PCB设计,并提供一种跨电脑跨USB口的端口号自动识别方法。 1. 简介 芯片采用沁恒的CH348Q&#xff…

Kotlin Jetpack Compose - 实现Tab布局

Tab布局是一种常见的UI设计,它允许用户在不同的视图或数据集之间切换。我们将使用Jetpack Compose的 TabRow 和 ScrollableTabRow 组件来实现这个布局。 一、基本的Tab布局——TabRow 二、滚动的Tab布局——ScrollableTabRow 组件 三、自定义Tab组件 一、基本的T…

音视频数据处理-H265/HEVC视频码流分析

一、H265概述 H265/HEVC(Hight Efficiency Video Coding)是由ITU-T和ISO/IEC两大组织在H264/AVC的基础之上推出的新一代高效视频编码标准,主要为应对高清和超高清视频在网络传输和数据存储方面带来的挑战。上一篇文章对H264/AVC视频码流进行…

chatgpt赋能python:Python自动化定位元素的方法详解

Python自动化定位元素的方法详解 作为一名Python编程经验丰富的工程师,我经常需要用到自动化定位元素的方法。今天,我想与大家分享一下在Python中如何自动化定位元素,以帮助那些想要进行Web自动化测试的开发者们。 什么是自动化定位元素 在…

chatgpt赋能python:Python聊天界面:开发高效且易于使用的消息应用

Python聊天界面:开发高效且易于使用的消息应用 Python是一种十分流行的编程语言,最近几年来,这种语言在GUI应用程序开发方面也越来越受欢迎。在本篇文章中,我们将介绍如何使用Python开发一个高效且易于使用的消息应用程序——聊天…

chatgpt赋能python:Python自动化定位——解放SEO员工的双手

Python自动化定位——解放SEO员工的双手 SEO(Search Engine Optimization)是现代数字营销中必不可少的一环。面对庞大的网络世界,SEO员工们日复一日地进行着关键词排名、页面跳转、链接检测等重复且繁琐的工作。而Python作为一种功能强大、易…

chatgpt赋能python:Python自动执行:提高效率,增强灵活性

Python自动执行: 提高效率,增强灵活性 随着时代进步,人们日常生活中越来越依赖计算机和网络技术,而在编程领域,Python语言作为一种高效、可读性好、易学易用的语言,得到了广泛应用。其中,Pytho…

【算法之栈与队列I】leetcode239. 滑动窗口最大值

232.用栈实现队列 力扣题目链接 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并…

使用netwox 的实例进行ARP地址解析协议分析【网络工程】(保姆级图文)

目录 1. netwox 构造 ARP 报文使用 netwox 工具构造 ARP 包。1) 查看 netwox 所在主机默认的 ARP 包的相关信息,执行命令如下:2) 构造 ARP 请求包,请求目标主机 192.168.43.95,执行命令如下:3) 为了验证构造的 ARP 请求…

IDEA(2021.3.3) 登录Github copilot最新版本报错解决

"Request sign ln Initiate failed with message:read ECONNRESET, request id: 6, error code:-32603 " .在获得github认证后的登录设备验证阶段弹出。此处应该为login 弹出异常,方法一:先使用Github 520进行动态替换,打开自己hos…

霍夫变换椭圆检测(matlab仿真与图像处理系列第2期)

概述 椭圆检测是图像处理中的一个重要问题,其目的是从图像中检测出可能存在的椭圆。在实际的应用中,椭圆常常被用来描述物体的形状或者得到物体的尺寸信息。 传统的椭圆检测方法通常采用二维Hough变换,在求解过程中需要处理大量的数据,并且计算复杂度高,导致速度较慢,…

linux系统grep文本三剑客之一

文章目录 一、grep常用选项二、正则表达式三、sort命令四、tr命令五、cut命令六、split命令七、paste命令八、正则表达式总结 一、grep常用选项 grep:文本三剑客之一,对文本内容进行过滤,支持正则表达式,针对行来进行处理。 -m&a…

【C++】 Qt-信号与槽

文章目录 基本概念添加信号与槽方法一方法二 自定义信号与槽CheckBox自定义QMessageBox自定义信号 信号与槽多对多一个信号连接多个槽多个信号连接一个槽一个信号连接一个信号连接一个槽 断开连接方法一方法二判断是否连接成功 基本概念 信号(signal)和…

chatgpt赋能python:Python自动执行函数——提高生产力的利器

Python自动执行函数 —— 提高生产力的利器 Python作为一种高级编程语言,具有强大的自动化能力,可以轻松实现多种任务的自动执行,从而提高生产力和效率。这篇文章将介绍如何使用Python自动执行函数,以及它对于SEO的重要意义。 什…

Flutter Dart类

目录 类 构造函数 命名构造函数 重定向构造函数 常量构造函数 工厂构造函数 Getters 和 Setters 初始化列表 可覆写的操作符 类 创建一个dart文件,名称全小写,里面的类可以按照驼峰命名法。文件名和类名可以不保持统一,这个跟Java有明…

Scrapy: 一个强大的 Python 爬虫框架--介绍--下载--启动!!

目录 Scrapy 影响力 介绍 主要特点 架构 运行流程 基本使用 安装 创建 Scrapy 项目 创建爬虫 爬虫包含的内容 运行爬虫 Scrapy 影响力 作为目前爬虫主流框架之一,Scrapy的影响力和应用范围非常广泛: 根据GitHub上的数据,Scrapy是一…

ERR! code ERR_SOCKET_TIMEOUT

问题 安装npm包,终端报错ERR! code ERR_SOCKET_TIMEOUT ERR! code ERR_SOCKET_TIMEOUT详细问题 笔者运行以下命令重新安装依赖项: npm install控制台报错,具体报错信息如下 npm ERR! code ERR_SOCKET_TIMEOUT npm ERR! network Socket t…

【C++】【VLD】VLD检测内存泄漏

【C】【VLD】VLD检测内存泄漏 C/C 程序越复杂,内存的管理显得越重要,稍有不慎就会出现泄漏。如果内存泄漏不是很严重,在短时间内对程序不会有太大影响,这也使得内存泄漏问题有很强的隐蔽性,不易被发现。 然而不管内存…

计算机网络——传输层

序言 计算机网络中的传输层在当今的社会起到了什么作用? 计算机网络中的传输层在通信和数据传输方面起着至关重要的作用。传输层是计算机网络体系结构中的一层,它负责提供端到端的可靠数据传输和通信服务;有着以下几个方面作用:可…

3-css高级特效-2

01-空间转换 空间转换简介 空间:是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同。空间转换也叫 3D转换属性:transform 平移 transform: translate3d(x, y, z); transform: translateX(); transfor…