python存储结构体数组_Python

目       录

1. 数组概念

2. Python 中实现数组的两种方式

2.1 使用内置列表 list 实现

2.2 使用模块 array 实现

2.2.1 模块 array 的优点

2.2.2 模块 array 使用-查看支持的类型

2.2.3 模块 array 使用-创建数组

 2.2.3 模块 array 使用-数组使用

2.2.4 模块 array 使用-从文件读取和存入文件

3. Python 中数组的广泛运用

3.1 numpy 模块的介绍

3.2 pandas 模块的介绍


1. 数组概念

      几乎所有编程语言中,都会有类似于数组的结构。一般来说,数组是一个固定长度的存储相同数据类型的数据结构,数组中的元素被存储在一段连续的内存空间中。它是最简单的数据结构之一。数组中的元素通过数组下标进行访问,数组下标从0开始。

        在 C 、Java 语言中,同一个数组中的元素类型是一致的,在创建数组时候就需要明确数据类型,并以此开辟内存空间。

        Python 中没有内置数组类型,但是有加强版的“数组”类型,那就是前面说过的列表 list 类型。

        列表既有数组的优点:1、按照索引查询元素速度快 2、按照索引遍历数组方便;又避免了其他编程语言中的缺点:数组的大小固定后就无法扩容了 2、数组只能存储一种类型的数据。Python 中列表既不需要在一开始就明确数据数目,也不需要明确存储空间大小,因为它是可以动态增加的,此外它想存什么就存什么,在同一个列表中可以存储不同类型的元素。

2. Python 中实现数组的两种方式

2.1 使用内置列表 list 实现


2.2 使用模块 array 实现

2.2.1 模块 array 的优点

        内置列表 list 有灵活的优点,但是正是因为可以灵活的存储不同类型的数据,在读取数据上势必会带来性能的下降,这时候就需要使用 array 模块中的数据类型来弥补这个缺点。

       也是内存连续,。它和列表 list 相似,但是所有的数组成员必须是同一种类型,在创建数组的时候,就确定了数组的类型,并且只能存储数值(整数,浮点数和unicode字符)和字符串。

2.2.2 模块 array 使用-查看支持的类型

>>> import array
>>> array.typecodes
'bBuhHiIlLqQfd'
>>>

 其中每个字符的含义如下,从Python类型来看,只能存储整数,浮点数和unicode字符。

array.typecodes 介绍

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)

 

python存储结构体数组_数组_02

 2.2.3 模块 array 使用-数组使用

        构造好的数组使用如列表,可以按照下标读取,可以切片,可以增删改查。

for i  in range(len(arr1)):
    print(arr1[i])
arr2[3]=9
print(arr2)
s=slice(2)
print(arr3[s])

python存储结构体数组_数组_03

2.2.4 模块 array 使用-从文件读取和存入文件

        数组 array 还提供从文件读取和存入文件的更快的方法,如.frombytes 和 .tofile 。