小编Eri*_*ang的帖子

如何有效地将 4D numpy 数组转换为以索引作为列的 pandas DataFrame?

我有一个形状为 (4, 155, 240, 240) 的 4D numpy 数组。我想创建一个 pandas DataFrame,其中该数组的每个元素一行,五列:一列对应四个索引中的每一个,一列对应数组中的值。我现在使用的代码如下所示:

import pandas as pd
import numpy as np

# some array of this shape
im = np.zeros((4, 155, 240, 240))

df = {col: [] for col in ['mode', 'x', 'y', 'z', 'val']}
for idx, val in np.ndenumerate(im):
    df['mode'].append(idx[0])
    df['y'].append(idx[1])
    df['x'].append(idx[2])
    df['z'].append(idx[3])
    df['val'].append(val)
df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以更有效地做到这一点,可能使用矢量化运算?

python arrays numpy python-2.7 pandas

2
推荐指数
1
解决办法
6023
查看次数

标签 统计

arrays ×1

numpy ×1

pandas ×1

python ×1

python-2.7 ×1