我需要将 3 列数组转换为方阵?

I need to convert a 3 column array into a square matrix?

我希望将我的数据转换为方阵:

假设您输入的是一个列表;然后,您可以使用列表理解将其转换为列表列表(即矩阵的代理):

>>> x = [0, 5, 10, 5, 0, 2, 10, 2, 0]
>>> [x[3*k:3*k+3] for k in range(3)]
[[0, 5, 10], [5, 0, 2], [10, 2, 0]]

为了帮助您解析该行:您正在通过从 0 到 2 迭代 k 来构建列表,其中每个元素都是从索引 [=14 开始的 x 的一部分=] 并在索引 3*k+3 处结束。因此,您的列表是 [x[0:3], x[3:6], x[6:9]].

也就是说,使用 numpy 来满足所有此类需求要好得多。在那里,你会做:

>>> import numpy as np
>>> x = np.array([0, 5, 10, 5, 0, 2, 10, 2, 0])
>>> x.reshape(3, 3)
array([[ 0,  5, 10],
       [ 5,  0,  2],
       [10,  2,  0]])

reshape() 函数将您的一维数组转换为请求的二维矩阵。