Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定大小的Python类型数组_Python_Arrays_Performance_Python 3.x_Multidimensional Array - Fatal编程技术网

特定大小的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哪些答案适用于我的问题?谢谢。这就是我要找的。您知道如何将生成器版本初始化为零吗?可以对二维或三维阵列执行此操作吗?