【问题标题】:How can I implement a multi dimensional array or array of records in Python?如何在 Python 中实现多维数组或记录数组?
【发布时间】:2012-05-09 11:56:49
【问题描述】:

我在计算机科学课上学习了有关多维数组和数组记录的理论,但我不确定如何在 Python 中实现这一点。我正在考虑使用记录数组,因为它可以让我在一个记录中拥有不同的数据类型,但同时我认为多维数组也可以在 Python 中学习。

我在 Google 上搜索了一下,找到了 numpy,但我不确定我会使用 numpy 中的哪个函数。我看到一个有元组的,但我不热衷于使用它,因为元组不能被修改。

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

【问题讨论】:

  • 记录数组是指我认为的类数组。
  • @aquavitae 我只是想知道除了使用列表之外是否还有其他选择。我正在努力学习新事物。
  • @jamylak 我还没有接触过课程。
  • @AnonUser 好吧,如果你指的是 Pascal 中的记录,例如,在 Python 中你会使用一个类,但使用一个列表会简单得多。
  • @jamylak Python 是我唯一知道如何编程的语言,所以我不太确定你在说什么,但无论如何感谢你的帮助。

标签: python arrays records


【解决方案1】:

取决于您希望如何与他们互动。考虑使用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。使用 multidimensional 规则维度的数组,Numpy 并不过分。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2013-04-12
    • 2017-03-16
    • 1970-01-01
    相关资源
    最近更新 更多