特定大小的Python类型数组
这将创建类型为特定大小的Python类型数组,python,arrays,performance,python-3.x,multidimensional-array,Python,Arrays,Performance,Python 3.x,Multidimensional Array,这将创建类型为带符号int的空数组: import array a = array.array('i') 指定数组长度(以及数组的秩-维数)的有效(性能方面)方法是什么 我知道NumPy允许在创建时指定数组大小,但是可以在标准Python中完成吗 这主要涉及列表,并且不考虑性能。使用数组而不是列表的主要原因是性能。数组构造函数接受第二个参数iterable。因此,以下步骤可以有效地创建数组并将其初始化为0..N-1: x = array.array('i', range(N)) 这不会创建
带符号int
的空数组:
import array
a = array.array('i')
指定数组长度(以及数组的秩-维数)的有效(性能方面)方法是什么
我知道NumPy
允许在创建时指定数组大小,但是可以在标准Python中完成吗
这主要涉及列表,并且不考虑性能。使用数组而不是列表的主要原因是性能。数组构造函数接受第二个参数
iterable
。因此,以下步骤可以有效地创建数组并将其初始化为0..N-1:
x = array.array('i', range(N))
这不会创建单独的N元素向量或列表
(如果使用python 2,请改用xrange
)。当然,如果需要不同的初始化,可以使用generator对象,而不是范围
。例如,可以使用生成器表达式用零填充数组:
a=array.array('i',(0 for i in range(N)))
Python没有2D(或更高)数组。您必须从1D数组列表中构造一个数组
事实是,如果您正在寻找一个高性能的实现,您可能应该使用Numpy。可能重复@sobolevn哪些答案适用于我的问题?谢谢。这就是我要找的。您知道如何将生成器版本初始化为零吗?可以对二维或三维阵列执行此操作吗?