首页 > 解决方案 > Pandas Data frame 2 维数组,转换为 3 维数组

问题描述

def dataGen(x):
    x1=x/2
    x2=x/3
    x3=x+x1
    return x1,x2,x3
output3DArray=data_2D_ArrayDf.apply(dataGen)

以上是旨在从 2 D 数组创建 3 D 数组的代码。输入二维数组形状为 [10,10] ,预期输出形状为 [10,10,3] 。当前输出只是 2D 10,10 元组数组。

标签: pythonpandas

解决方案


Pandas DataFrame 最多只能用于表示 2d 数据。尽管它可以执行multiindexing,但对于您的情况而言并非易事。

如果你使用 numpy 数组,这非常简单

def add_dim(x):
    return np.expand_dims(x, axis=-1) # <- axis=0 for (3,10,10) or -1 for (10,10,3)

X = data_2D_Array
output3DArray = np.concatenate((add_dim(X/2), add_dim(X/3), add_dim(X+X/2)), axis=2)

Numpy 使用广播对数组的所有元素进行并行操作,速度非常快。


推荐阅读