我将创建一个Pandas DataFrame,其中每个特定的(index, column)
位置可以是任意形状的numpy数组,甚至是一个简单的数字。
如此:
import numpy as np, pandas as pd
x = pd.DataFrame([[np.random.rand(100, 100, 20, 2), 3], [2, 2], [3, 3], [4, 4]],
index=['A1', 'B2', 'C3', 'D4'], columns=['data', 'data2'])
print(x)
需要50秒才能在我的电脑上创建!为什么?
单独np.random.rand(100, 100, 20, 2)
是超快的(<1秒创建)
如何加速包含各种形状的数组的Pandas数据集的创建?
这实际上不是创建的问题,这是print
声明。在我的电脑上,创建1000个循环需要2.8秒。但print
的一次迭代大约需要26秒。
有趣的是,print(x['data2'])
、print(x['data']['A1'])
和print(x['data']['B2'])
基本上都是瞬时的。因此,print
似乎有一个问题,弄清楚如何显示大小截然不同的项目。也许是一个bug?