2012-05-09 36 views
0

我已经在计算机科学课上了解了关于多维数组的记录&数组的记录,但我不确定如何在Python中实现它。我正在考虑使用一组记录,因为它可以让我在一条记录中拥有不同的数据类型,但同时我认为多维数组在Python中学习也很好。如何在Python中实现多维数组或数组记录?

我已经google了一下&我已经找到了numpy,但我不确定在numpy中使用哪个函数。我看到一个元组,但我并不热衷于使用它,因为元组无法修改。

我正在使用Python 3.2,但我并不介意使用Python 2.7。

+0

通过记录数组,您指的是我假设的类的数组。 – jamylak

+0

列表有什么问题? – aquavitae

+0

@aquavitae我只是想知道除了使用列表还有其他选项。我正在努力学习新的东西。 –

回答

7

取决于你想如何与他们交互。考虑使用Numpy。具体来说,看看N-Dimensional array。它为操作和比较提供了丰富的API。

如果numpy感觉过度杀伤,可以使用简单元组/列表实现多数组。

multi_array = [ 
    [1, 2, 3, 4, 5], 
    [6, 7, 8, 9, 10] 
] 

>>> multi_array[0][0] 
>>> multi_array[1][4] 

举个例子,以multi_array转换成numpy的ndarray

import numpy as np 
np.ndarray((2, 5), buffer=np.array(multi_array), dtype=int) 

注意ndarray希望,因为它是第一个参数shape。这意味着您在创建之前需要知道数组的维数。改变ndarray的尺寸被称为'重塑'。

+1

Numpy的+1。使用常规维度的多维数组Numpy不是一个过度杀伤。 – eumiro

1

不确定您的意思是“记录”,但您可以使用列表列表来表示二维数组。阅读docs了解更多信息。