Python中标准库array数组操作举例详解!
Python中标准库array数组操作举例详解!
作者:骑个小蜗牛
这篇文章主要介绍了Python中标准库array数组操作的相关资料,Python的array模块提供了固定类型数组类,用于高效存储同类型元素,节省内存并支持数值计算,需要的朋友可以参考下。
模块介绍
Python 标准库中的 array 模块提供了一个固定类型数组类,用于高效地存储同类型的元素。
与内置的 list 类型相比,array 更加节省内存并且能够处理大量数据。array 主要用于数值计算和处理大规模的同类型数据。由于其内部存储方式比列表更为紧凑,array 在某些场景下可以提高程序的性能,特别是涉及大量数值运算时。
使用场景
- 数值计算:如果需要大量存储数值数据且元素类型相同,array 是一个不错的选择。它在内存中以固定大小的格式存储数据,适合进行数值计算。
- 优化内存:对于只需要存储简单数据类型(如整数或浮点数)的情况,array 比 list 更加节省内存。
- 文件操作:array 支持直接与二进制文件交互,将数据以二进制格式读取或写入文件,适用于大规模数据的存储和读取。
主要类
类 | 描述 |
---|---|
array | 用于创建一个固定类型的数组对象,数组元素类型一致,支持高效的内存存储。 |
- array
参数:
- typecode:一个字符,表示数组中元素的类型。常见的类型码有:
- b:有符号字符(byte)
- B:无符号字符
- u:Unicode字符(Python3.3已弃用)
- h:有符号短整型
- H:无符号短整型
- i:有符号整型
- I:无符号整型
- l:有符号长整型
- L:无符号长整型
- f:浮点型
- d:双精度浮点型
- initializer:可选,用于初始化数组的内容,可以是一个列表、元组或其他可迭代对象。
1
2
3
4
5
6
7
8
9
|
import array # 创建一个包含整数的数组 arr_int = array.array( 'i' , [ 1 , 2 , 3 , 4 , 5 ]) print (arr_int) # 输出: array('i', [1, 2, 3, 4, 5]) # 创建一个包含浮点数的数组 arr_float = array.array( 'f' , [ 1.1 , 2.2 , 3.3 ]) print (arr_float) # 输出: array('f', [1.100000023841858, 2.200000047683716, 3.299999952316284]) |
主要函数
函数 | 描述 | 示例 |
---|---|---|
array.append(x) | 向数组末尾添加元素 x。 | arr.append(5) 将 5 添加到数组末尾。 |
array.insert(i, x) | 在指定索引 i 处插入元素 x。 | arr.insert(1, 10) 在索引 1 处插入 10。 |
array.remove(x) | 移除数组中第一个匹配元素 x。 | arr.remove(2) 移除第一个出现的 2。 |
array.pop([i]) | 移除并返回索引 i 处的元素,若未指定则默认删除最后一个元素。 | arr.pop(1) 删除并返回索引 1 处的元素。 |
array.extend(iter) | 向数组添加可迭代对象 iter 中的所有元素。 | arr.extend([6, 7]) 将 [6, 7] 添加到数组末尾。 |
array.reverse() | 反转数组中的元素顺序。 | arr.reverse() 反转数组中的元素。 |
array.tofile(file) | 将数组的元素写入到指定的文件。 | arr.tofile(f) 将数组写入文件 f。 |
array.fromfile(file, count) | 从文件读取 count 个元素并存入数组。 | arr.fromfile(f, 4) 从文件 f 中读取4个元素。 |
array.index(x) | 返回数组中第一次出现元素 x 的索引。 | arr.index(3) 返回元素 3 的索引。 |
array.count(x) | 返回数组中元素 x 出现的次数。 | arr.count(3) 返回元素 3 出现的次数。 |
- append()
追加元素
1
2
3
|
# 追加元素 arr_int.append( 6 ) print (arr_int) # 输出: array('i', [1, 2, 3, 4, 5, 6]) |
- insert()
插入元素
1
2
3
|
# 插入元素 arr_int.insert( 2 , 10 ) # 在索引2处插入10 print (arr_int) # 输出: array('i', [1, 2, 10, 3, 4, 5, 6]) |
- remove()
删除元素
1
2
3
|
# 删除元素 arr_int.remove( 4 ) # 删除第一个出现的4 print (arr_int) # 输出: array('i', [1, 2, 10, 3, 5, 6]) |
- pop()
弹出元素
1
2
3
4
|
# 弹出元素 popped = arr_int.pop( 3 ) # 弹出索引3处的元素 print (popped) # 输出: 3 print (arr_int) # 输出: array('i', [1, 2, 10, 5, 6]) |
- reverse()
反转数组
1
2
3
|
# 反转数组 arr_int.reverse() print (arr_int) # 输出: array('i', [6, 5, 10, 2, 1]) |
- count()
计算元素出现次数
1
2
|
# 计算元素出现次数 print (arr_int.count( 10 )) # 输出: 1 |
- index()
查找元素索引
1
2
|
# 查找元素索引 print (arr_int.index( 5 )) # 输出: 1 |
- open()
读写文件
1
2
3
4
5
6
7
8
9
10
|
# 写入文件 arr_int = array.array( 'i' , [ 1 , 2 , 3 , 4 , 5 ]) with open ( 'array_data.bin' , 'wb' ) as f: arr_int.tofile(f) # 从文件读取 arr_new = array.array( 'i' , [ 0 , 0 , 0 , 0 , 0 ]) with open ( 'array_data.bin' , 'rb' ) as f: arr_new.fromfile(f, 5 ) print (arr_new) # 输出: array('i', [1, 2, 3, 4, 5]) |
注意事项
- 类型限制:array 中的元素类型必须一致,并且只能存储基本数据类型(如整数、浮点数等)。如果需要存储不同类型的数据,可以使用列表。
- 类型码:在创建 array 时,必须指定一个有效的类型码(如 ‘i’ 表示整数,‘f’ 表示浮点数)。不同类型的元素不能混合在同一个数组中。
- 内存优化:array 比 list 更节省内存,特别是在处理大量数值数据时。如果只需存储数值数据,array 是比 list 更高效的选择。
- 操作效率:array 主要用于高效存储和处理大量数据,特别适合进行数值计算和与文件的二进制交互,但不如 list 灵活,特别是在需要处理多种不同数据类型时。
- 不支持复杂类型:array 不支持存储复杂的类型(如字典、列表等),只能存储基本数据类型。
总结
Python 中的 array 模块提供了一种高效的方式来存储和处理同类型的数据。与 Python 列表相比,array 在内存使用上更为节省,特别适合用于数值计算、处理大量数据的场景。它通过强制元素类型一致性来保证高效存储,但也因此限制了它的灵活性。对于需要处理大量数值数据或需要与二进制文件交互的应用,array 是一个理想的选择。
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需129元,即可下载本站文章涉及的文件和软件。