![算法零基础一本通(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/51/44510051/b_44510051.jpg)
2-6 与数组有关的Python程序
前几节是数组的相关知识,对于想进一步学习信息科学的人很有帮助。其实Python语言对于常用的数组数据处理已经有内建的方法,如建立、插入、删除数据,本节将做说明。
在Python程序语言的数据结构中,列表(list)与我们所提的数组非常类似,不过列表结构允许数组元素含不同数据形态,所以在使用上更具弹性,不过也会造成执行速度较差以及需要较多的系统资源。如果数据量少,其实也可以将列表当作数组使用。
Python内建有array模块,使用这个模块可以建立整数、浮点数的数组,在应用上可以用一个字符的type code指定数组的数据形态。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-T33_46763.jpg?sign=1739482052-TXAFqezsAcmEqwysbcYVhY0Em6zT5ItL-0-42b28f1191514931de523aaae3f33ee9)
在使用array模块前,必须先导入此模块:
from array import *
2-6-1 建立数组
可以使用array( )方法。
array(typecode[, initializer])
typecode是指所建立数组的数据形态,第2个参数是所建的数组内容。
程序实例ch2_1.py:建立数组然后打印。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46764.jpg?sign=1739482052-E9xCbMROH77YOLaSgQDkgCYoG14t0dtf-0-fad880e790a45fe757dd7fb61797d386)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46765.jpg?sign=1739482052-JZE0w46r6PI5VZiC10gU2DFZIyic7iWY-0-907071b4618520b4c055cbd798abf067)
2-6-2 存取数组内容
我们可以直接使用索引值存取数组内容。
程序实例ch2_2.py:建立数组然后存取数组内容。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46766.jpg?sign=1739482052-4xjRAp3KBaN7QJgBB0t2uzHqKkEw4is2-0-71df81d9be05a3d7415efb5b39a6dc1b)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46767.jpg?sign=1739482052-MBEY60waGpvpRp46fHa2UPI1YZrCM0BW-0-f067194558fe4661db0483746621faa3)
2-6-3 将数据插入数组
可以使用insert( )方法,将数据插入数组。
insert(i, x)
在索引i位置插入数据x。
程序实例ch2_3.py:先建立数组,然后在索引2位置插入100。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46768.jpg?sign=1739482052-OLz7zU9UD1R5roQyppJVzuzIETlekhli-0-e61b0c1e34052b1a4dfd6c4cc4be10d6)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46769.jpg?sign=1739482052-vp8Nza1xl9CqTUxhlxthClFPcKgE1czy-0-1ecb1889a41d52a4f24430457e004bee)
append( )则是可以将数据插入数组末端。
程序实例ch2_4.py:先建立数组,然后在数组末端插入100。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46770.jpg?sign=1739482052-vdHZ1VdqzY5g6E1vnP79Njs75Pd7ELJd-0-d945cf06357f10eb20cd04bd35888a55)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46771.jpg?sign=1739482052-Y0oIXAvGjbOMwTs6phIYT3s79LCmp6km-0-335c4e23dd34580a13e97f2e921dfd08)
2-6-4 删除数组元素
可以使用remove(x)方法删除数组中第一个出现的元素x。
程序实例ch2_5.py:先建立数组,然后删除数组元素25。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46772.jpg?sign=1739482052-6iz5Qf8giZgtcmoPffqXUBC1R5vJhyOn-0-d84993d614c847b71807bf22984cfa7b)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46773.jpg?sign=1739482052-KhnCVk0MffPmzmchKbDG6B7OJnQuvsAd-0-95e437402c0c857baf359a34f762ed39)
pop(i)可以回传和删除索引i的元素,若省略i相当于i=-1,此时可以回传和删除最后一个元素。
程序实例ch2_6.py:先建立数组,然后第1次使用pop( ),第2次使用pop(2),回传和删除数组元素。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_65774.jpg?sign=1739482052-CgZMFLgyCv7S1ZTdnWijSoZazPl9joMB-0-b6f96836bb92a3576df628d39aa80072)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46775.jpg?sign=1739482052-EVuwRfGNiOYC1RlwhBPnJMk6vydxe7AF-0-12cc5cf9b24443ae676c75be9d2cc779)
2-6-5 搜寻数组元素
可以使用index(x)方法搜寻指定数组元素x的索引。
程序实例ch2_7.py:先建立数组,然后找出数组元素35的索引值。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_51154.jpg?sign=1739482052-T3gvmByIb8Nvc8MfFb9AOMxEiOONgaRi-0-6cb5784b8beb0a623e7b8a033aa50793)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_46777.jpg?sign=1739482052-xzQumpXXtkl85Ngg4V9R7A2KxoXncVgU-0-66219f8b934ff3e50f238648eb3dd152)
2-6-6 更新数组内容
这一节主要是更改数组某索引内容。
程序实例ch2_8.py:更改索引2的内容为100。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_51153.jpg?sign=1739482052-NOyqXX64MDdHZZjRhx11J9KPGdps8nK6-0-e442e184474b5538efce701bd7f8f863)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_46779.jpg?sign=1739482052-UrKQzWl439e1UwkvT1WU2uKUE5xR0IHQ-0-c76cba6a77229e1a55a12e419272e2a9)
2-6-7 Numpy
Python是一个应用范围很广的程序语言,为了应对高速运算,在人工智能领域常用Numpy模块执行相关的数组(array)运算,有关这方面的应用读者可以参考笔者所著的《Python数据科学零基础一本通》。