【ndarry的基本操作】——numpy03

这篇具有很好参考价值的文章主要介绍了【ndarry的基本操作】——numpy03。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本索引和切片:

与序列一样可以进行索引和切片,且方式类似,开始序号从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,:,:]) #相当于获取第一层的所有信息

【ndarry的基本操作】——numpy03

间隔索引:

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列

【ndarry的基本操作】——numpy03

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

形态变换操作:

数组是组织数据的一种手段,不同的数据集,可以用一维、二维、三维,甚至更高维的数组来组织。因此有必要了解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)

【ndarry的基本操作】——numpy03

一般来说,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

【ndarry的基本操作】——numpy03

通过参数进行转置:

如果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))) #执行的是行列转置

【ndarry的基本操作】——numpy03
【ndarry的基本操作】——numpy03

flatten():

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

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

【ndarry的基本操作】——numpy03文章来源地址https://www.toymoban.com/news/detail-500410.html

到了这里,关于【ndarry的基本操作】——numpy03的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kibana创建索引、文档基本操作

    众所周知,es和数据库的操作十分相似,只是在一些称呼上有所不同,如图 因此,想要在es上存储文档,就得先 创建索引 (好比想要在数据库存储数据,就得先创建表,才能在表里插入数据)。这次笔者主要是通过kibana进行es相应操作,所以给出kibana对应的索引、文档操作。

    2023年04月23日
    浏览(56)
  • Opencv 基本操作四 指针数组、vector与Mat之间的相互转换 | Mat切片成Vector<mat>并还原

    在深度学习模型部署中通常存在读取图像为mat,然后将mat转换为float指针传入模型的操作。为了快捷开发,因此对指针数组、vector与Mat之间的相互转换进行整理。实现了指针数组、vector之间的相互转换;vector与Mat之间的相互转换(含单通道图像和多通道图像)。vector转mat主要

    2024年02月08日
    浏览(48)
  • ElasticSearch 中的中文分词器以及索引基本操作详解

    配置完成后,重启 es ,即可生效。 热更新,主要是响应头的 Last-Modified 或者 ETag 字段发生变化,ik 就会自动重新加载远程扩展辞典。 视频笔记,在公众号 江南一点雨 后台回复 elasticsearch04 获取下载链接。 2. ElasticSearch 索引管理 微信公众号 江南一点雨 后台回复 elasticsearch

    2024年04月25日
    浏览(34)
  • 【Python Numpy教程】切片和索引

    NumPy是Python中用于科学计算的重要库之一,它提供了多维数组对象和许多用于操作这些数组的函数。在本教程中,我们将探讨NumPy中的数组切片和索引,这是使用NumPy进行数据处理和分析时的关键概念。数组切片和索引使您能够访问、操作和修改NumPy数组的元素,对于数据处理

    2024年02月03日
    浏览(37)
  • 【数据分析之道-NumPy(三)】numpy切片与索引

    ✍ 作者简介: i阿极 ,CSDN Python领域新星创作者, 专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》 ,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。 ✍ 订阅后,可以阅读《数据分析之道》中全部文章内容

    2023年04月09日
    浏览(48)
  • ElasticSearch 中的中文分词器以及索引基本操作详解,Java高并发编程详解深入理解pdf

    PUT book/_settings { “number_of_replicas”: 2 } 修改成功后,如下: 更新分片数也是一样。 2.3 修改索引的读写权限 索引创建成功后,可以向索引中写入文档: PUT book/_doc/1 { “title”:“三国演义” } 写入成功后,可以在 head 插件中查看: 默认情况下,索引是具备读写权限的,当然这

    2024年04月09日
    浏览(51)
  • 原生语言操作和spring data中RestHighLevelClient操作Elasticsearch,索引,文档的基本操作,es的高级查询.查询结果处理. 数据聚合.相关性系数打分

    ​ Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasti

    2024年02月05日
    浏览(87)
  • NumPy--reshape、切片操作、copy函数

    ⛳reshape方法和flatten、ravel方法 reshape 用于改变数组的形状和维度 flatten 用于将多维数组展平为一维数组 。该方法返回一个新的一维数组,其中包含了原始数组中的所有元素,按照原始数组的元素顺序排列。 注意 reshape 方法返回的是一个新的数组对象,原始数组并没有被修改

    2024年02月16日
    浏览(40)
  • 【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)

    目录 一、前言 二、实验环境 三、Python容器(Containers) 0、容器介绍 1、列表(List) 1. 初始化 a. 创建空列表 b. 使用现有元素初始化列表 c. 使用列表生成式 d. 复制列表 2. 索引和切片 a. 索引 b. 负数索引 c. 切片 3. 常用操作(更新、删除) a. 更新单个元素 b. 更新切片 c. 删除单

    2024年02月09日
    浏览(53)
  • Python列表操作指南:索引、切片、遍历与综合应用

    列表(List)是Python中最常用的数据结构之一,它可以存储多个元素,并且支持对元素的索引和切片操作。本文将介绍列表的基本操作和常用方法。 通过方括号 [] 来创建一个列表,可以是空列表或包含元素的列表。例如: 列表中的元素按照插入顺序存储,并且每个元素都有一

    2024年02月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包