【发布时间】:2012-07-27 05:36:29
【问题描述】:
对于二进制矩阵,我的意思是矩阵中的每个元素都是 0 或 1,为此我使用 numpy 中的 Matrix 类。
首先,在 numpy 中是否有特定类型的矩阵用于它,还是我们只是使用一个填充了 0 和 1 的矩阵?
其次,在给定 Matrix 类的维度的情况下,创建一个 全为 0 的方阵的最快方法是什么?注意:numpy.zeros((dim, dim)) 不是我想要的,因为它创建了一个带有浮点数的二维数组 0.
第三,我想频繁地获取和设置矩阵的任何给定行。对于get,我可以考虑使用row = my_matrix.A[row_index].tolist(),它将返回给定行的列表表示。对于设置,似乎我可以做my_matrix[row_index] = row_list,row_list 是一个与给定行长度相同的列表。同样,我想知道它们是否是最有效的工作方法。
【问题讨论】:
-
为什么需要
numpy.matrix而不是numpy.ndarray?为什么在检索行时将它们转换为列表? -
@SvenMarnach,我需要一个矩阵,因为它具有用于矩阵特定计算的现成函数。我在检索时将一行转换为列表,因为我需要将其序列化为 JSON。
-
许多这些特定于矩阵的操作也可以应用于数组——这就是我被问到的原因。如果您需要将事物序列化为 JSON,那么您的瓶颈很可能在其他地方,您无需关心从矩阵中检索一行的速度。