首页 > 解决方案 > 如何重新排列矩阵

问题描述

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

#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])

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

但我希望 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 但我似乎没有正确使用它

标签: pythonlistmatrixreshape

解决方案


下面的工作吗?

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

推荐阅读