提问人:Dave Liu 提问时间:3/10/2023 最后编辑:Dave Liu 更新时间:9/1/2023 访问量:163
有效地将 numpy 矩阵转换为 Vaex DataFrame
Efficiently convert numpy matrix to Vaex DataFrame
问:
我正在尝试将我的宽(100K+ 列)2D numpy 数据转换为 Vaex Dataframe。我正在阅读文档,看到两个相关功能:
但两者都给了我一整列,其中每一行都是一个numpy数组。我所期望的是 Vaex 能够智能地识别出我希望 numpy 数组中的每一列数据都是 Vaex DataFrame 中自己的独立列。x
vaex.from_arrays(x=2d_numpy_matrix)
给我:
x
---
0 np.array(1,2,3)
1 np.array(4,5,6)
当我想要的时候:
0 | 1 | 2 (Column header)
---
1 | 2 | 3
4 | 5 | 6
我的解决方法是,但这令人尴尬地慢。有没有一种更节省 CPU 时间的方法来做到这一点?vaex.from_pandas(pd.DataFrame(2d_numpy_matrix))
答:
1赞
Rupert
8/2/2023
#1
您可以像这样解压缩字典推导:
import numpy as np
import vaex
headers = np.array(['1','2','3'])
data = np.array([[1,4],[2,5],[3,6]])
df = vaex.from_arrays(**{header: column for header, column in zip(headers, data)})
这将产生:
>>> df
# 0 1 2
0 1 2 3
1 4 5 6
评论
0赞
Dave Liu
8/22/2023
与海量数据相比,这样做的时间效率如何?from_pandas
2赞
Rupert
8/25/2023
我在 4 mil 行、50+ 列数据集上运行了一个测试。from_pandas 创建 Vaex DataFrame 需要 ~0.15 秒,而上述方法需要 ~0.05 秒。
评论