目 录
1. 数组概念
几乎所有编程语言中,都会有类似于数组的结构。一般来说,数组是一个固定长度的存储相同数据类型的数据结构,数组中的元素被存储在一段连续的内存空间中。它是最简单的数据结构之一。数组中的元素通过数组下标进行访问,数组下标从0开始。
在 C 、Java 语言中,同一个数组中的元素类型是一致的,在创建数组时候就需要明确数据类型,并以此开辟内存空间。
Python 中没有内置数组类型,但是有加强版的“数组”类型,那就是前面说过的列表 list 类型。
列表既有数组的优点:1、按照索引查询元素速度快 2、按照索引遍历数组方便;又避免了其他编程语言中的缺点:数组的大小固定后就无法扩容了 2、数组只能存储一种类型的数据。Python 中列表既不需要在一开始就明确数据数目,也不需要明确存储空间大小,因为它是可以动态增加的,此外它想存什么就存什么,在同一个列表中可以存储不同类型的元素。
2. Python 中实现数组的两种方式
2.1 使用内置列表 list 实现
相关列表 list 的使用,请参看下面的章节!
Python 内置数据类型 02----列表_江南野栀子的博客-CSDN博客
2.2 使用模块 array 实现
2.2.1 模块 array 的优点
内置列表 list 有灵活的优点,但是正是因为可以灵活的存储不同类型的数据,在读取数据上势必会带来性能的下降,这时候就需要使用 array 模块中的数据类型来弥补这个缺点。
array 模块是 Python 中实现的一种高效的数组存储类型,也是内存连续,。它和列表 list 相似,但是所有的数组成员必须是同一种类型,在创建数组的时候,就确定了数组的类型,并且只能存储数值(整数,浮点数和unicode字符)和字符串。
2.2.2 模块 array 使用-查看支持的类型
>>> import array
>>> array.typecodes
'bBuhHiIlLqQfd'
>>>
其中每个字符的含义如下,从Python类型来看,只能存储整数,浮点数和unicode字符。
type code | C Type | Python Type | minimum size in bytes |
b | signed char | int | 1 |
B | unsigned char | int | 1 |
u | Py_UNICODE | Unicode Character | 2 |
h | signed short | int | 2 |
H | unsigned short | int | 2 |
i | signed int | int | 2 |
I | unsigned int | int | 2 |
l | signed long | int | 4 |
L | unsigned long | int | 4 |
q | signed long long | int | 8 |
Q | unsigned long long | int | 8 |
f | float | float | 4 |
d | double | float |
2.2.3 模块 array 使用-创建数组
在构造一个数组时候,需要提供一个类型代码字符来指示存储何种元素,以及一个可迭代对象来填充元素。
# 构造方法如下,需要提供一个类型代码字符来指示存储何种元素
# 以及一个可迭代对象来填充元素
# array.array(typecode[, initializer])
import array
# 创建一个存储整型的array
arr1= array.array('i', [1,2,3,4,5,6])
arr2= array.array('f', [1,2,3,4,5,6])
arr3= array.array('u',[u'a',u'b',u'c'])
print(arr1)
print(arr2)
print(arr3)
2.2.3 模块 array 使用-数组使用
构造好的数组使用如列表,可以按照下标读取,可以切片,可以增删改查。
for i in range(len(arr1)):
print(arr1[i])
arr2[3]=9
print(arr2)
s=slice(2)
print(arr3[s])
2.2.4 模块 array 使用-从文件读取和存入文件
数组 array 还提供从文件读取和存入文件的更快的方法,如.frombytes 和 .tofile 。
3. Python 中数组的广泛运用
3.1 numpy 模块的介绍
Numpy 模块简介_江南野栀子的博客-CSDN博客_numpy模块
3.2 pandas 模块的介绍
pandas 的数据类型简单介绍-Series 与 DataFrame_江南野栀子的博客-CSDN博客_dataframe数据类型
''
要是大家觉得写得还行,麻烦点个赞或者收藏吧,想个博客涨涨人气,非常感谢!
'''