You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于带MultiIndex的Numpy数组创建Pandas DataFrame的技术问询

解决方案

1. 明确数组结构

你的array_test形状为(5, 359, 2),各维度对应:

  • 第一维度:5次实验重复(命名为'1'到'5')
  • 第二维度:359个独立观测值(可作为DataFrame的列)
  • 第三维度:2类数据,分别是mean(观测值均值)和uncertainty(观测值不确定度)

2. 构建多级索引DataFrame

直接通过pandas的MultiIndex和数组维度转换就能实现需求,代码如下:

import numpy as np
import pandas as pd

# 调整数组维度顺序:将[实验重复, 观测值, 指标]转为[实验重复, 指标, 观测值]
reshaped_array = array_test.transpose(0, 2, 1)

# 创建多级索引:一级是实验编号,二级是指标类型
multi_index = pd.MultiIndex.from_product(
    [['1', '2', '3', '4', '5'], ['mean', 'uncertainty']],
    names=['experiment', 'metric']
)

# 转换为DataFrame,列对应359个观测值
df = pd.DataFrame(reshaped_array.reshape(-1, 359), index=multi_index)

3. 计算5次重复的汇总均值

要得到每个观测值在5次重复中的均值(包括mean的均值、uncertainty的均值),按二级索引分组计算即可:

# 按指标类型分组,计算每个观测值的5次重复均值
summary_df = df.groupby(level='metric').mean()

4. 可选优化

如果想给观测值列自定义命名(比如obs_0到obs_358),创建DataFrame时指定columns参数:

df = pd.DataFrame(
    reshaped_array.reshape(-1, 359),
    index=multi_index,
    columns=[f'obs_{i}' for i in range(359)]
)

内容的提问来源于stack exchange,提问作者datadatadata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:02:03