python - 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 元组数组。
解决方案
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 使用广播对数组的所有元素进行并行操作,速度非常快。
推荐阅读
- google-chrome - 在 Chrome 中,如何在单击尺寸时禁用新的尺寸下拉菜单(例如 font-size: 20px)
- airflow - 当它似乎是 Postgres 时,为什么 Airflow 声称 SQLite 是默认后端?
- business-objects - 网络智能公式从时间到小时
- python - 将子进程 stdout 写入文件会截断为 4096 字节
- sql - 在 SQL 查询上使用有
- java - 测试 SSL Vertx 服务器和客户端运行状况检查时出错
- linux - /proc/PID/maps 中的散点图
- javascript - 使用 svelte:self 添加到嵌套 JSON?
- reactjs - 在使用 axios 从 API 获取数据方面需要帮助
- c - C 有一种 docblock 语法吗?它在STM32CubeIDE中工作吗?