这将创建一个类型为signed int
的空数组:
import array
a = array.array('i')
指定数组长度(以及数组的排名 - 维度数)的有效(性能)方法是什么?
我知道NumPy
允许在创建时指定数组大小,但是可以在标准Python中完成吗?
Initialising an array of fixed size in python
这主要涉及列表,也没有考虑性能。使用数组而不是列表的主要原因是性能。
答案 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。