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

将NumPy数组形式的数据序列列表转换为指定维度的Pandas DataFrame

将NumPy数组形式的数据序列列表转换为指定维度的Pandas DataFrame

嘿,我明白你的问题了——你手里有个3行10列的NumPy数组,想把它转成3×3的Pandas DataFrame,但直接用pd.DataFrame(list)得到的还是3行10列的结构,对吧?这就需要先对原始数组做一些预处理,再转成DataFrame,下面分几种常见场景给你解决方案:

场景1:从每个数据序列中选取指定位置的3个元素

如果你的需求是从每个长度为10的子数组里提取出3个元素(比如前3个)来组成3×3的DataFrame,可以这么做:

import numpy as np
import pandas as pd

# 你的原始NumPy数组(注意变量名尽量别用list,避免和内置函数冲突)
arr = np.array([[0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332], 
                [0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332], 
                [0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332]])

# 提取每个子数组的前3个元素(也可以换成[:, 2:5]这种指定区间,或者[:, [0,5,9]]指定索引)
selected_data = arr[:, :3]

# 转换为3×3的DataFrame
df = pd.DataFrame(selected_data)

运行后你就能得到一个3行3列的DataFrame,每行对应原来的一个数据序列,每列是对应序列里的指定元素。

场景2:对每个数据序列做聚合生成3个统计值

如果你的需求是对每个长度为10的子数组做统计聚合(比如计算均值、最大值、最小值),用这三个聚合值来组成3×3的DataFrame,可以试试这个方法:

import numpy as np
import pandas as pd

arr = np.array([[0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332], 
                [0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332], 
                [0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332]])

# 对每个子数组计算均值、最大值、最小值,组合成3×3的数组
aggregated_data = np.column_stack([
    np.mean(arr, axis=1),  # 每行的均值
    np.max(arr, axis=1),   # 每行的最大值
    np.min(arr, axis=1)    # 每行的最小值
])

# 转换为带列名的DataFrame(列名可以根据你的需求修改)
df = pd.DataFrame(aggregated_data, columns=['均值', '最大值', '最小值'])

这种方式生成的DataFrame每行对应一个原始数据序列,每列是该序列的一个统计指标,完美符合3×3的维度要求。

场景3:将完整序列作为DataFrame的单元格(不推荐常规场景)

如果你的需求是把每个完整的长度10的序列作为DataFrame的一个单元格(单元格存储数组而非单个数值),可以这么构造:

import numpy as np
import pandas as pd

arr = np.array([[0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332], 
                [0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332], 
                [0.32689251, 0.32677079, 0.32649432, 0.32594585, 0.32532732, 0.32509514, 0.32503138, 0.32492934, 0.324797, 0.32458332]])

# 构造3×3的结构,这里示例将每个序列重复三次,你可以根据需求调整内容
data = [[arr[0], arr[0], arr[0]],
        [arr[1], arr[1], arr[1]],
        [arr[2], arr[2], arr[2]]]

df = pd.DataFrame(data)

不过这种方式的DataFrame单元格是数组,后续数值分析会比较麻烦,所以只建议在特殊场景下使用。

备注:内容来源于stack exchange,提问作者alpa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 13:54:08