如何重新排列矩阵

How to rearrange matrix

我有以列表形式读入的数据:

#Data[0] = X1 Y1a Y2a Y3a Y4a
#Data[1] = X2 Y1b Y2b Y3b Y4b


for i in range(len(Data)): #len(Data) = 25, say
     X_data.append(Data[i][0])
     for j in range(int(math.sqrt(len(Data[0] - 1)))):
          Y_data.append(Data[i][j+1])

这给了我一个 Y_data 长度列表 (4 * len(Data)) = 100

但是我希望 Y_data 成为一个 2x2(x25) 列表,而不是一个单一的维度列表:

Y_data[Xval_a][0][0] = Y1a
Y_data[Xval_a][1][0] = Y2a
Y_data[Xval_a][0][1] = Y3a
Y_data[Xval_a][1][1] = Y4a

其中 Xval 是我来自 Data

的 25 个指标之一

我还希望它与我拥有的 Y 数据值的数量成比例。例如,这里我有 Y1 - Y4,所以需要一个 2x2 数组,但我也可以有 Y1 - Y9 或 Y1 - Y16。

我试过np.reshape但我似乎没有正确使用它

以下是否有效?

Data = np.array(Data)
Data = np.reshape(Data, (2,2,25))