python - 如何重新排列矩阵
问题描述
我有以列表形式读入的数据:
#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 但我似乎没有正确使用它
解决方案
下面的工作吗?
Data = np.array(Data)
Data = np.reshape(Data, (2,2,25))
推荐阅读
- c# - 在反序列化时在.net中获取xml响应而不是json
- ruby-on-rails - Rails:为到 root 的多个资源路由设计 after_sign_in_path
- python-3.x - 将列表映射到单个字典键和值
- docker - 如何启动安装了卷的 osxia/openldap 映像?
- node.js - Angular 中的 Node Sass 错误:混入可能未在控制指令或其他混入中定义
- angular - Angular:未在指令中获取表单原始/无效状态的引用
- wordpress - 在循环外获取平均产品属性值评级(WooCommerce)
- javascript - Rivescript:在条件响应中使用关键字触发器
- java - 构建 RCP 不会启动 BundleException(EclipseBug?)
- scala - 无法使用 mockito/powermock 模拟单例类