You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

高效将大列数二维Numpy矩阵转换为Vaex DataFrame的方法

高效将大列数二维Numpy数组转换为Vaex DataFrame

要直接将二维Numpy数组的每一列映射为Vaex DataFrame的独立列,且避免通过Pandas中转的低效问题,你可以通过**构造列字典并配合vaex.from_arrays或vaex.from_dict**实现,这是最直接高效的方式。

核心原因

你之前使用vaex.from_arrays(x=2d_numpy_matrix)得到单列数组的原因是:该函数会把传入的整个二维数组当作单一列的元素值,而非自动拆分列。必须明确将每一列单独传入。

高效实现代码

import vaex
import numpy as np

# 模拟你的大列数二维Numpy数组(示例为100行、10万列)
large_2d_array = np.random.rand(100, 100000)

# 构造列字典:键为列名(可自定义,这里用列索引作为名称),值为对应列的Numpy数组
columns = {str(col_idx): large_2d_array[:, col_idx] for col_idx in range(large_2d_array.shape[1])}

# 方式一:用vaex.from_arrays解包字典
vaex_df = vaex.from_arrays(**columns)

# 方式二:直接用vaex.from_dict(效果一致)
# vaex_df = vaex.from_dict(columns)

为什么这比转Pandas高效?

通过Pandas中转时,Pandas会为10万列创建完整的DataFrame结构,这本身就会带来巨大的内存占用和CPU开销;而直接用Vaex的原生函数,无需中间转换环节,直接基于Numpy数组构建Vaex的懒加载列结构,内存和CPU效率都远高于前者。

内容的提问来源于stack exchange,提问作者Dave Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 18:04:58