![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=1739313133-fzryCO6t844QVHYbdxs2wuWHj1brVhFn-0-39e0621bbdaf962368efb3ec6c070db5)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-5-i.jpg?sign=1739313133-AwXT8OAQtbFiByLL4E5Csiz8gClOqpr5-0-cfc0315acdc19143ce342a352279e3fd)
2.使用以下命令输出第7个位置的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-6-i.jpg?sign=1739313133-NaedjZSOlGefMsYbs69J1RIuZJHWEo9A-0-ea8be977745d1cf2a439f37a0abc18cf)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-7-i.jpg?sign=1739313133-oAimGvar3NH7njREbF6S4QXY3iC57VBV-0-e95e0ac596f4f7b96b06cd7f66f97389)
3.使用以下命令输出第3个和第6个位置之间的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-8-i.jpg?sign=1739313133-ErzhCUVGpEf2OcsDciIFSgnWDMFvLzcR-0-f055ff32316481efdfbd3acd27d31833)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-i.jpg?sign=1739313133-LmlzqxjdBhhIHmHjL3Az20VAVPa63lJr-0-8d928bedad693f01d5217f376c028fff)
4.使用以下命令输出直到第4个位置的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-2-i.jpg?sign=1739313133-rJL9HvPaqZIlUgRzKMwetNTn1M7qY5cS-0-deb0d7722c4d5d571e575b9d1e283ebd)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-3-i.jpg?sign=1739313133-LoM2qadzAx5qqWtPjX7BqmiuKGlJ5BwY-0-38628809652e0928e16f4c2bf10aa3b7)
5.使用以下命令输出后向索引的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-4-i.jpg?sign=1739313133-Mh6VGnNXo5K5QsyMltSneBWEvabz0epc-0-69b945c24de3cce32d46d22c078ca327)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-5-i.jpg?sign=1739313133-9rEJx9OCUoUgbQr6GcuGUlYdEMGKPqCj-0-20b1d2d186f5a388601ba591ac7e5d5d)
6.使用以下命令输出其后向索引的元素(跳跃的三个值):
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-6-i.jpg?sign=1739313133-9nnfNRZ652ELEsidt2GLUFzjhiYACKgQ-0-61769449d0363e6ae801c69dd2819466)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-7-i.jpg?sign=1739313133-FbkKglXQ72pA42qHeEMvaEMXGHPyLdCn-0-f563cb7455c1bc84ff7091a816358214)
7.使用以下命令创建一个名为array_2的新数组:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-8-i.jpg?sign=1739313133-Iyk1XG8eTvXiIyvH6qYz04iUT8QChBWk-0-655f4c6c5e25f9bcbfe62fdac1661da5)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-9-i.jpg?sign=1739313133-vgjnW3sQHXBqmNxtycOT3R73sZ5ANMo6-0-4887de9ff394dab7e3252af63dec4334)
8.使用以下命令输出数组中第二、第四和第九个元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-10-i.jpg?sign=1739313133-q8AYLBif9tk7dbTh4Bs9Gd3alSNY5mN3-0-bd5e0524d3ce4ef8d60e01851ad63c3a)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-11-i.jpg?sign=1739313133-1iaVcUgWpvzMpxPmg7TFHCsEiDueWeEE-0-8f99ded79bab086a447013e768490897)
9.使用以下命令创建多维数组:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-12-i.jpg?sign=1739313133-SBHwgl64eTnka5YMep2zod9qBl95fSt8-0-dfd85865435c17b85263cdd65d049980)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-13-i.jpg?sign=1739313133-3OzrXIw8JyOu5D3eL1q2DU87nWvW0mir-0-f6963effd8fefd7f1d142c29a0bba838)
10.使用双方括号索引访问值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-i.jpg?sign=1739313133-gSGof7tBTlw7Ybmx8kMbSu0WNAqfys4c-0-64daebb20dba3d4eb6703b194fde293d)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-2-i.jpg?sign=1739313133-mjgskLdGCxOqBcynTX33Nsf7EgBzolUz-0-c2ace7442fdc3d2c42eaa3b5bc17f146)
11.使用单方括号索引访问值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-3-i.jpg?sign=1739313133-IBFMKeOcedAcm0OI6VrVoalzuUxLt8XY-0-0eeddebc2989dec3bc69fe3fc9dbfcbe)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-4-i.jpg?sign=1739313133-tAFWhV8H5ZbjY9Qsru9kM3XVW50Uz6mM-0-0b96919b5d75912647b98559efc63c3e)
12.使用行或列访问多维数组中的值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-5-i.jpg?sign=1739313133-VUPOkCw5uaIAjJ7IyW9rJ0c3rv9SbIkr-0-19f26a0672044bdd8d6a9ec8cb6d426f)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-6-i.jpg?sign=1739313133-VtUf8TGFsYOKNyvutspCUH65qshlIy8E-0-0f1d7d678f881dc173942e37cbf018cc)
13.输出指定行和列索引的矩阵,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-7-i.jpg?sign=1739313133-tnm8UY569C4HSAg3biFfp3sbmTBnj5A7-0-4151ceef57fe128bbed2f3f4f58c217d)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-8-i.jpg?sign=1739313133-7WzTlQiOYkT1W6I4sM335k18qXljBElu-0-2dcdf48c1a584116ef4ccd5055285aeb)
14.输出指定行和列索引的矩阵,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-9-i.jpg?sign=1739313133-0Krtuk7taDzcM2IhjOHNVr5aVzv9QP8K-0-f2046c2dbc1ef40e3f4d042f802b51f0)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-10-i.jpg?sign=1739313133-TpqZUGhXN4Q1vBfXk6gFEmcZLo3Rlmp2-0-b9eab8e01accb303172b13527c81702a)
条件子集
条件子集是一种基于数值条件来选取特定元素的方式。它几乎就像SQL查询子集元素的简短版本,请参考以下示例:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/052-i.jpg?sign=1739313133-MtcsKfpp68Da6k7S61zf86I1SxhPEvUF-0-e6eea1341ecb06303ef84fbb3b177e4f)
示例输出如下(需要注意的是,由于数组是随机生成的,所以它每次的输出都不一致):
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/052-2-i.jpg?sign=1739313133-i9ZD1MDYwf8OFR8VSRr0Zt2agCaWcmFl-0-26acaae888dc9820eca2a1c295f8239d)