NumPy怎样使用花式索引或布尔索引访问元素?

除了整数索引之外,NumPy中还提供了两个形式比较复杂的索引——花式索引和布尔索引,下面对这两种索引的基本用法进行详细的讲解。

1.花式索引

花式索引指以整数组成的数组或列表为索引。当使用花式索引访问一维数组时,程序会将花式索引对应的数组或列表的元素作为索引,依次根据各个索引获取对应位置的元素,并将这些元素以数组的形式返回;当使用花式索引访问二维数组时,程序会将花式索引对应的数组或列表的元素作为索引,依次根据各个索引获取对应位置的一行元素,并将这些行元素以数组的形式返回。接下来,创建一个一维数组,使用花式索引获取该数组的多个元素,代码如下。

In  []:   import numpy as np          array_ld = np.arange (1, 10)          print (array_1d)          print("-          访问索引为[2,5,8]的元素          print (array_1d[[2, 5, 8]])          [1 2 3 45 6 7 8 9]          ____________          [36 9]

以上代码首先创建了一个一维数组array_ld,然后使用花式索引[2.5.8]访问了该一维数组,即依次获取索引2、5、8对应的元素3、6、9.并返回包含这几个元素的数组。由输出结果可知,程序输出了一个包含3、6、9这3个元素的数组,说明使用花式索引成功地一次访问了数组中的多个元素。

接下来,创建一个二维数组,使用花式索引获取该数组的多行元素,代码如下。

In  []:   array_2d - np.arange (1, 10).reshape((3, 3))          print (array_2d)          print("_______________")          # 访问索引为[0,2]的元素          print(array_2d[[0, 2]])            [[1 2 3]            [4 5 6]            [7 8 9]]            [[1 2 3]            [7 8 9]]

需要说明的是,在使用两个花式索引,即通过“二维数组[花式索引,花式索引]”的形式访问数组时,会将第一个花式索引对应数组或列表的各元素作为行索引,将第二个花式索引对应数组或列表的各元素作为列索引,再按照“二维数组[行索引,列索引]”的形式获取对应位置的元素。例如,使用两个花式索引访问二维数组array_2d的元素,代码如下。

In 1]:   #使用两个花式索引访问元素         print (array_2d[[0, 2], [1, 1]])           [2 8]

上述与二维数组相关的花式索引操作的示意图如下图所示。

NumPy怎样使用花式索引或布尔索引访问元素?

花式索引操作示意图

2.布尔索引

布尔索引是以布尔值构成的数组为索引。当使用布尔索引访问一个目标数组时,程序会将布尔数组中的每个布尔值作为索引,只要布尔值为True,就从目标数组中获取与True位置对应的元素。需要说明的是,布尔数组的形状必须与目标数组的形状相同。接下来,创建一个二维数组,获取该数组中值大于5的元素,代码如下。

In []:   array_2d = np.arange (1, 10).reshape ((3, 3))         print(array_2d)         print("-_______--")         使用布尔索引访问元素         print (array_2d > 5)         print("----------")         print (array_2d[array_2d > 5])         [{1 2 3]          [4 5 6]          [7 8 9]}         ----------         [[False False Falce]          [False False Truf          [ True True True]}         ----------          [6 7 8 9]

以上代码中,首先创建了一个形状为(3,3)的二维数组array_2d,该数组中的元素为1~9;然后将array_2d数组进行布尔运算,判断array_2d中的每个元素是否都大于5.大于5会得到布尔值 Tnue,小于5会得到布尔值False,所有的布尔值构成一个形状与array_2d数组相同的布尔数组;最后将这个布尔数组作为布尔索引,通过布尔索引获取array_2d数组中的元素。从输出的结果可以看出,程序返回了array_2d数组中与布尔数组中Tnue位置对应的元素。

上述二维数组相关的布尔索引操作的示意图如图2-4所示。

NumPy怎样使用花式索引或布尔索引访问元素?

布尔索引示意图

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/277239.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
黑马程序员黑马程序员订阅用户
上一篇 2023年6月17日 06:52
下一篇 2023年6月17日 07:26

相关推荐

  • 教你solr是什么「solr是什么软件」。

    Solr是一个开源的、基于Apache Lucene的企业级全文搜索服务器,它提供了一个强大的搜索平台,使得用户能够快速地在大量数据中进行高效的全文搜索,Solr具有高可靠性、高扩展性、高性能和易用性等特点,被广泛应用于…

    2024年6月13日
    02
  • 利用免费工具软件操作月入过万的网赚新思路

    古人讲,工欲善其事必先利其器,任何行业想做好,都离不开趁手的工具。互联网也不例外,有了一些软件工具确实能够事倍功半。正是有了这些需求,很多人靠着互联网的这些工具翻身逆袭发财。其实很多工具都是我们耳熟…

    2018年8月22日
    0451
  • 小编教你很多认为seo索引就是百度收录量。

    很多认为seo索引就是百度收录量,但是两者之间有很大的差别,简单一点说:seo索引就是蜘蛛抓取信息入库的过程。索引的最大作用,就是为优化关键词做准备,只有搜索引擎对抓取页面索引入库,才能进入seo后续的工作。…

    2023年3月11日
    01
  • 小编分享百度索引量是什么意思怎么提高索引量。

    无论是站长还是专业的seo人,都比较看重网站的收录量。实际上,相对于百度收录量,更应该看重百度索引量,提高索引量才会提高关键词曝光与点击的概率。类似于一个漏斗过滤水的过程,收录就是经过简单滤的污水,将这…

    2023年6月9日
    01
  • 教你如何提升网站索引量。

    什么是网站索引量?很多seo新手对于这些概念含糊不清。你可以这么理解,索引页基本上是由搜索引擎初步考察觉得比较优质的页面。也就是说网站索引量很大一部分与也页面内容的质量有关系。那么SEO该如何提升网站索引量…

    2023年6月28日
    00
  • mysql_建立索引的优缺点

    建立索引的优缺点: 为什么要创建索引呢? 这是因为,创建索引可以大大提高系统的性能。  第一、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二、可以大大加快 数据的检索速度,这也是创建索引的…

    2017年10月19日
    0173
  • 教你网站SEO优化怎么查看收录问题。

      seo与收录紧密相连,收录是排名的基础,没收录就一定没排名,采用科学的方法查询尽可能准确的网站收录情况,是我们从事seo的基本工作。怎样查询网站收录?方法多种多样,建议各种方式综合使用。  一些简单的方…

    2022年12月2日
    04
  • 小编教你如何让新网站提升索引量。

    索引量是百度判断一个网站seo优化做的好不好的标准,也是百度蜘蛛抓取的页面数量,所以说索引量越多越利于收录,本文介绍一些新网站提升索引的方法。 1、挑选优异的服务器 挑选优异的服务器,比方阿里云等,保证网…

    2023年6月28日
    02

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息