![Python数据整理](https://wfqqreader-1252317822.image.myqcloud.com/cover/51/32436051/b_32436051.jpg)
上QQ阅读APP看书,第一时间看更新
练习35:索引和切片
NumPy数组的索引和切片与常规列表索引非常类似。我们甚至可以以格式(start,step,end)提供一个额外的步长参数,以此步长大小逐步遍历元素向量。此外,我们可以将一个列表作为参数传递来选择特定的元素。
在本练习中,我们将学习关于一维和多维数组的索引和切片知识。
说明
在多维数组中,你可以使用两个数字来表示元素的位置。例如,元素位于第3行和第2列,其索引分别为2和1(因为Python是基于0的索引)。
1.创建一个包含10个元素的数组,通过切片检查其各个元素,并使用不同的语法对数组进行索引。命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-4-i.jpg?sign=1738895076-NfEGwVRlCmrcLCNjytUT86uk3n1Alzf7-0-614b3f4d69266f3af8426ab338575f65)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-5-i.jpg?sign=1738895076-7MTqRXpWAYAdnihDAbuPeqs1ctxwd94H-0-be24e69d4546c7169d8bb1fda828cae8)
2.使用以下命令输出第7个位置的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-6-i.jpg?sign=1738895076-I1A7pAsy6dOQi5VC2fibNL0UDOFeGguE-0-4d9ccb0a6c57f2b3c308b940bb818ee4)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-7-i.jpg?sign=1738895076-9ZiBjmMDojACfAgNg0GUQTclaBsRooCI-0-40a979ef1b44e8fd5c8cef52e408a09c)
3.使用以下命令输出第3个和第6个位置之间的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-8-i.jpg?sign=1738895076-iBCXSFLTWglxmNbJVo7uPSQi95o10AFA-0-9f08ca04281082edb49ed196fe816a3e)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-i.jpg?sign=1738895076-ZUVbmvhEaSLdlJLhWaexzNMXh74lqIsR-0-75a39a0ee9ac1c219481178c93277ab0)
4.使用以下命令输出直到第4个位置的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-2-i.jpg?sign=1738895076-pJcIQ6T1gqWlMkZuKyMfxhR5wbjTnvec-0-ea40fb5e5d1aa650d499913d19f81d1a)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-3-i.jpg?sign=1738895076-KlGIHuQ0Le3W7d9NcLUrM5XljgJphkMw-0-222b74a52bd1e975c9a790ff540306a0)
5.使用以下命令输出后向索引的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-4-i.jpg?sign=1738895076-OABehraAjjfiYf9PTwWxLzDJDrtfobhU-0-f5a5a84cf3c4ff2223bdd74b50984899)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-5-i.jpg?sign=1738895076-vz8ZqaKGjFaLTkc5milHFHm0MaBq2F3s-0-389f27005e30f81024e7697b1ca4447e)
6.使用以下命令输出其后向索引的元素(跳跃的三个值):
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-6-i.jpg?sign=1738895076-E95MAfVACPPooFQ2iHgqlwdb8As5ycZI-0-4d915aa06f1658c4fa8bec78ad7d6bcf)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-7-i.jpg?sign=1738895076-w3gBs3eeA6i0aSY1JuiJgkvvPKm0OCHv-0-d4c49a722d2403ffbdc13dda23f268c2)
7.使用以下命令创建一个名为array_2的新数组:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-8-i.jpg?sign=1738895076-N8nOO7Lx7E48Fr8sbkZto85IqMxE6tco-0-9ade6162fac1d1a2017b1ec31d077bfe)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-9-i.jpg?sign=1738895076-VU5GSm8lMBOjhXGC316lvZausPf0L1Sv-0-6e798b0c5cbdaa9c5f11f5a147592b3c)
8.使用以下命令输出数组中第二、第四和第九个元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-10-i.jpg?sign=1738895076-LGSuHXwg06myU4lBOtGYw04Ev6VhyTBY-0-183d56ed29e4dfc32ea75365a1ec17e8)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-11-i.jpg?sign=1738895076-qPO0U9yAZb9vsGBrnEFW78k2bqzq437f-0-59ca413b616319536cb9454994cb62a8)
9.使用以下命令创建多维数组:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-12-i.jpg?sign=1738895076-qdjoFBf27OdOrl3JmysWlmuz9ox4Isr1-0-b167a1054e02c5722d290f44d8aabd8c)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-13-i.jpg?sign=1738895076-BfulCshT0SuvC4GcnC8MKSuYkmGnb6W0-0-9a0ff9d7508322e108d9282fa79c6e88)
10.使用双方括号索引访问值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-i.jpg?sign=1738895076-xbU78Ycpf5l1EFTCgrbu6yhiPN9sf1Zl-0-9b18cf87e7558acb024a512f3f8a751c)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-2-i.jpg?sign=1738895076-BO9fG5YzcjAwNqcveSHI1RQJKdXLYfsi-0-66d98142e97a18857717eb8378478e55)
11.使用单方括号索引访问值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-3-i.jpg?sign=1738895076-OVxsl9PElQ6St0mjiaZkWcQOURtn8vmI-0-9952b7f08a625c863824ccb32bc9ff86)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-4-i.jpg?sign=1738895076-mUt3iRzyklkGgTCJHy5UXQ39H7j47VF7-0-5100512ef2226ce46184b199cd8cee30)
12.使用行或列访问多维数组中的值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-5-i.jpg?sign=1738895076-zqYEdXihBwUJL7YZnLJM9z8YxOLCOZjY-0-b9426e021615e92ab44e953a44cf76c9)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-6-i.jpg?sign=1738895076-9f8HwGR5LRQUF3pBlLutbhbUMPJ2UlYP-0-7b38a7c484c4e902c2029f8acf35452c)
13.输出指定行和列索引的矩阵,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-7-i.jpg?sign=1738895076-tURleRyLClHxECZ69LLskZqT6fgQn49q-0-7b877e311da6ec10ffac6c295ec8d1bb)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-8-i.jpg?sign=1738895076-JRjPBvzEpIObAe3NcTL4pdw6QTRyeoFO-0-d76fc5147ee78483be81226de31b57c4)
14.输出指定行和列索引的矩阵,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-9-i.jpg?sign=1738895076-hBsqG4gZdioVkt9JZofEi4sO1aptLwyM-0-d68a75d0b640d602c88bce74b5689d49)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-10-i.jpg?sign=1738895076-fTKDpQ4JR2jQlyGVrjF46kjH9hXRXt7y-0-8bc74aad26d4fdab402b0967bca3a3ec)
条件子集
条件子集是一种基于数值条件来选取特定元素的方式。它几乎就像SQL查询子集元素的简短版本,请参考以下示例:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/052-i.jpg?sign=1738895076-caqjnwnKGQ3JSDu8wCJkNQkW8mV9nY8h-0-30fd34ae86ae18365d8588c816d73daf)
示例输出如下(需要注意的是,由于数组是随机生成的,所以它每次的输出都不一致):
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/052-2-i.jpg?sign=1738895076-h2Vn6WYd0CdtkG3E6RzWZiCnVubPXPTN-0-f2ba9cd3ff7f079df43ece6e26823af1)