资讯专栏INFORMATION COLUMN

python中ndarray数组的索引和切片使用方法

89542767 / 409人阅读

  小编写这篇文章的主要目的,是给大家做出一个比较详细的介绍,介绍关于python中,ndarray数组索引和切片是怎么去进行使用的呢?具体的使用方法是什么呢?下面就给大家详细的介绍下。


  索引和切片相当于是对数组中内容的读(read)或者查询(inquiry)。是我们获取有用信息(demanded infomation)的重要方法。


  对于索引


  对于1维数组:在数组名的后面用中括号[]包括索引编号,括号中填写所查询数组的编码。比如:data[1]


  对于n维数组:有两种方式


  第一种:用列表表示所查询数的坐标值,如data_2dim[1,0]


  第二种:把多维数组看成一位数组套娃,依次取值,如data_2dim[1][0]


  对于切片


  对于1维数组:在数组名后加上中括号[],在括号中填写切片的范围,m:n注意这个式子用冒号作为分隔符,表示的意义是m≤index<n,如:data[2:4];特别要注意的是m和n如果省略了,则默认m=0,n=length(array),也就是说默认是第一位和最后一位。这个和matlab中的冒号表达式是不一样的。


  对于n维数组:把多维数组看成一位数组套娃,依次取值,要注意的是,多维数组的切片往往还是多维数组,如果需要得到具体某一个元素,则在切片之后还要进行索引操作。


  可以在一下代码中演示索引和切片操作:


  import numpy as np
  data=np.array([0,1,2,3,4,5])
  print(data[1])
  print(data[2:4])
  data_2dim=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
  print(data_2dim[1,0])
  print(data_2dim[1][0])
  print(data_2dim[1:4])
  print(data_2dim[1:4][1:3][1][2])


  运行结果如下:


  1


  [2 3]


  4


  4


  [[4 5 6]


  [7 8 9]


  [10 11 12]]


  12


  [Finished in 1.3s]


  总结一下,索引和切片都是对数组读的操作,都使用方括号[](squre bracket)进行编号的框定。


  特别要注意的是切片存放的变量和原来的数组变量在本质上共享同一片内存,如果修改了切片存放的变量,那么原来的数组的对应元素也会对应修改。如以下代码所示:


  data=np.arange(10)
  data_slice=data[3:6]
  print(data)
  print(data_slice)
  data_slice[2]=100
  print(data)
  print(data_slice)


  结果如下所示:


  [0 1 2 3 4 5 6 7 8 9]


  [3 4 5]


  [0 1 2 3 4 100 6 7 8 9]


  [3 4 100]


  [Finished in 2.2s]


  如果需要在修改切片的同时不改变原来数组中的数据,可以使用.copy()方法。对上述代码稍作修改,结果如下:


  data=np.arange(10)
  data_slice=data[3:6].copy()
  print(data)
  print(data_slice)
  data_slice[2]=100
  print(data)
  print(data_slice)


  [0 1 2 3 4 5 6 7 8 9]


  [3 4 5]


  [0 1 2 3 4 5 6 7 8 9]


  [3 4 100]


  [Finished in 2.5s]


  综上所述,关于这篇文章,小编就给大家介绍到这里了,希望可以给大家带来更多的一个帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128185.html

相关文章

  • Numpy数组索引切片变形拼接分裂

    摘要:一一维数组的索引与切片对象的内容可以通过索引或切片来访问和修改,与中的切片操作一样。在指定位置分裂数组本身作为一个参数,分类位置构成的列表作为第二个参数同时也可以对一维数组和多位数组进行操作。 1.概述 今天我们来讲一下Numpy数组的索引与切片,numpy数组的索引与切片和Python中的切片与索引的作用相同,可以快速的取出数据,进行下一步的运用或者查看,但是两种切片还有一些不同的地...

    miracledan 评论0 收藏0
  • 【数据科学系统学习】Python # 数据分析基本操作[一] numpy

    摘要:提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数。结构化数据,例如多维数据矩阵表格行数据,其中各列可能是不同的类型字符串数值日期等。基础数组和矢量计算高性能科学计算和数据分析的基础包。 本篇内容为整理《利用Python进行数据分析》,博主使用代码为 Python3,部分内容和书本有出入。 利用 Python 进行科学计算的实用指南。本书重点介绍了用于高效解决各种数据分析问...

    wushuiyong 评论0 收藏0
  • NumPy 基本切片索引

    摘要:有三种可用的索引字段访问,基本切片,高级索引。基本切片和索引基本切片将的切片基本概念扩展到维。基本切片生成的所有数组始终是原始数组的视图。序列切片的标准规则适用于基于每维的基本切片包括使用步骤索引。因此,在基本切片下的行为。 https://docs.scipy.org/doc/nu... 索引 ndarrays可以使用标准Python x[obj]语法对其进行索引 ,其中x是数组,o...

    lemon 评论0 收藏0
  • Numpy 文用户指南 2. 快速启动

    摘要:注意和标准库类并不相同,后者只处理一维数组和提供少量功能。然而,指定参数你可以吧运算应用到数组指定的轴上通用函数提供常见的数学函数如和。在中,这些叫作通用函数。函数,另一方面,将一维数组以行组合成二维数组。 原文:Quickstart tutorial 译者:Reverland 来源:试验性NumPy教程(译) 2.1 先决条件 在阅读这个教程之前,你多少需要知道点python。如...

    shiina 评论0 收藏0
  • NumPy 数组大全

    摘要:在下面的例子中,我们创建了一个二维数组并插入了两列输出如果没有使用参数,则会输出这就是数组结构的扁平化。下面的例子中我们从二维数组中删除了一行输出在方法中,首先给出数组,然后给出要删除的元素的索引。数组被传递给函数。 NumPy 是一个Python 库,用于 Python 编程中的科学计算。在本教程中,你将学习如何在 NumPy 数组上以多种方式添加、删除、排序和操作元素。 NumPy...

    kk_miles 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<