【问题标题】:Python Typed Array of a Certain Size特定大小的 Python 类型数组
【发布时间】:2015-11-16 12:37:50
【问题描述】:

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

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

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

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

Initialising an array of fixed size in python
这主要处理列表,并且不考虑性能。使用数组而不是列表的主要原因是性能。

【问题讨论】:

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


【解决方案1】:

数组构造函数接受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 没有二维(或更高)数组。您必须从一维数组列表中构造一个。

事实上,如果您正在寻找高性能的实现,您可能应该使用 Numpy。

【讨论】:

  • 谢谢。这就是我要找的。你知道如何做一个生成器版本来初始化为零吗?可以对 2D 或 3D 数组执行此操作吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多