某种尺寸的Python类型数组

时间:2015-08-22 18:27:49

标签: python arrays performance python-3.x multidimensional-array

这将创建一个类型为signed int的空数组:

import array
a = array.array('i')

指定数组长度(以及数组的排名 - 维度数)的有效(性能)方法是什么?

我知道NumPy允许在创建时指定数组大小,但是可以在标准Python中完成吗?

Initialising an array of fixed size in python
这主要涉及列表,也没有考虑性能。使用数组而不是列表的主要原因是性能。

1 个答案:

答案 0 :(得分:2)

数组构造函数接受iterable作为第二个参数。因此,以下方法可以有效地创建数组并将其初始化为0..N-1:

x = array.array('i', range(N))

这不会创建单独的N元素向量或列表。

(如果使用python 2,请改用xrange)。当然,如果您需要不同的初始化,您可以使用生成器对象而不是range。例如,您可以使用生成器表达式用零填充数组:

a=array.array('i',(0 for i in range(N)))

Python没有2D(或更高)数组。您必须从一维数组列表中构造一个。

事实是,如果你正在寻找一个高性能的实现,你应该使用Numpy。