![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=1738849233-sjz4oRUQ6eKbKsqrVD9kHokjm42k79F5-0-431b09bbb01dc37d4a6d1500506da9d6)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-5-i.jpg?sign=1738849233-fIMRyj9YSOesN7Jojhy0CTvv2gmfXjPU-0-cd7bb697689d2013d38cb6354ca5c8ad)
2.使用以下命令输出第7个位置的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-6-i.jpg?sign=1738849233-ua0NZCBJk38j7PukO6Am1s3xeKi1RAFM-0-43b6178f38a28991a468f0316ada00b2)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-7-i.jpg?sign=1738849233-Z2X4IX4gqrZ0VvxdAoZamUqsSTHv6vvz-0-1a865ddb7b7198e10e86541df7f86155)
3.使用以下命令输出第3个和第6个位置之间的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/049-8-i.jpg?sign=1738849233-VcNfoH8jQJ4UIJkM1VsWZXbA23weiUYD-0-5875ffd342022f4567261ddf4802e522)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-i.jpg?sign=1738849233-ey7E9a8WDsQ4MZeiKnY3s4omKbswj50j-0-6382bb4854a860aa999bf44b5dc9cf16)
4.使用以下命令输出直到第4个位置的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-2-i.jpg?sign=1738849233-o6MIvQRbQYARR5Riw1aTekC8fK5nGMY2-0-68fc9c132b0c4d7d5ede7f33b28ba7b0)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-3-i.jpg?sign=1738849233-0ISi4BaXQdFAX0CUvQdAv1UawZnUw1Rd-0-e0bcedc31980d936b7cdadad87af5525)
5.使用以下命令输出后向索引的元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-4-i.jpg?sign=1738849233-O0R2Rav5MCXj5YQvGFWpi3XG8skFJCX6-0-fb49b967ba6c5200a52189413b8381ca)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-5-i.jpg?sign=1738849233-VwpyoQBG3xlFCQBpL58NuhpzXDmAc8Et-0-f60d1c8d442c68e819bf436127fb841b)
6.使用以下命令输出其后向索引的元素(跳跃的三个值):
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-6-i.jpg?sign=1738849233-sfxaLNS7tsWPwEcbodIwFiwxP7pgg4KZ-0-2c030874f01aac948eb2a2b575ba1075)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-7-i.jpg?sign=1738849233-pdHR3SYlGRjkRY2RWxWTyw2fnprOQCbj-0-411fc6069b3afccdea2f1abe954de36f)
7.使用以下命令创建一个名为array_2的新数组:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-8-i.jpg?sign=1738849233-g8Y6wwC5bVQL6oiyCfk23pb9BY2hY9lB-0-1b0baeeb5ca53123fb5d01ebea48b974)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-9-i.jpg?sign=1738849233-t2kyDSZjhSsQA1cYfA0RQcYKoy0i6AZu-0-5816ccfae5e17ad46471f5693dfaef09)
8.使用以下命令输出数组中第二、第四和第九个元素:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-10-i.jpg?sign=1738849233-TDFamxcioSRPVFkkEcx4qempMX2hSYkC-0-cae3833d31c6e3bd704fe0a6a8a8fb53)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-11-i.jpg?sign=1738849233-c94KD5HEKxLiTdvbtb3XOllLScezEjJh-0-f254d1792fef684467e94facbabc0a09)
9.使用以下命令创建多维数组:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-12-i.jpg?sign=1738849233-4VU6I02wCwJgZOHeCIKdmSnQryudGpZG-0-3be868ddc503d9c59420bd560ba35881)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/050-13-i.jpg?sign=1738849233-ZNKIXNm3Oq0ISwxbDu1LPZMFb0fywksM-0-297fd42b4034e58c1f1cbe426a7fac9d)
10.使用双方括号索引访问值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-i.jpg?sign=1738849233-JcP1xL7dvNOwB1TF4HKobEQculwvAjzY-0-88dccfad009da85fc8e42ad335bdbe6f)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-2-i.jpg?sign=1738849233-CieYR7vMwn1t7OHVwbKXkGhd01cujBZU-0-022e632ba94dc7806b48d8a7958762bf)
11.使用单方括号索引访问值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-3-i.jpg?sign=1738849233-wV3OM3GBClL8irTuNKH1e3FgiY5TcYdK-0-416c65eb4dd76a082e30f23de1031ab7)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-4-i.jpg?sign=1738849233-5Svw9L1XnzaYyJH8gv23OQOVYZAucNJM-0-f8878deff8a145aa92158872f70337e5)
12.使用行或列访问多维数组中的值,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-5-i.jpg?sign=1738849233-Ix2CvOO0qpVvzZ7Qyz6bgbbySHPMWA2k-0-8e2d6f25a9ee1dff9b1e3a7ffe5da064)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-6-i.jpg?sign=1738849233-KxC7WV9t2nKftxpY1ZbBzVQWjyaBcCRT-0-c7f5a787e4dc96d9a74e5c993a1e03a9)
13.输出指定行和列索引的矩阵,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-7-i.jpg?sign=1738849233-FxlfodPFVw0bSYOS2LKlrKPFQ4InhcL0-0-d841086912efb3bf868eefb0df146077)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-8-i.jpg?sign=1738849233-RY3s1eFE9dKxfToQ9doZG5bFYsy0C5WW-0-67f475940ef7b373dbfabe91504a090e)
14.输出指定行和列索引的矩阵,命令如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-9-i.jpg?sign=1738849233-jYGAGD3tP1NOy7yhox2WwcLUsaEowCZ3-0-bb05baccb1d19022ac3f2bb33079cf57)
输出如下:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/051-10-i.jpg?sign=1738849233-kcPEKhfXfUB6OMe4LBuANgX4p3aGAyMd-0-7e4a78c744811b1cbd558966ce739415)
条件子集
条件子集是一种基于数值条件来选取特定元素的方式。它几乎就像SQL查询子集元素的简短版本,请参考以下示例:
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/052-i.jpg?sign=1738849233-Oi9Hluv6s3BKRKwA5aekIS4x72EQMw6V-0-43f85f952c35053a82b21bd814ded645)
示例输出如下(需要注意的是,由于数组是随机生成的,所以它每次的输出都不一致):
![](https://epubservercos.yuewen.com/63BD11/17517093106688706/epubprivate/OEBPS/Images/052-2-i.jpg?sign=1738849233-JjJkcnGi0cjr9lQqzf32vBGsbLaxL8oZ-0-22f529f3dbb9335888645772ec54d8a8)