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

如何快速从txt文件中加载格式为np.ndarray的人脸特征数据

方案1:使用numpy内置loadtxt方法(比纯Python循环快10~20倍)

直接通过参数指定跳过第一列文件名,批量读取后512列特征,底层为C实现,无Python循环开销:

import numpy as np
# usecols指定读取第1到512列(跳过第0列的文件名),dtype用float32符合人脸特征精度要求,比默认float64省一半内存和读取时间
feat_matrix = np.loadtxt("你的数据集文件路径.txt", usecols=range(1, 513), dtype=np.float32)
# 若文件过大内存不足,可添加mmap_mode='r'参数做磁盘映射,无需全量加载进内存即可使用
# feat_matrix = np.loadtxt("你的数据集文件路径.txt", usecols=range(1, 513), dtype=np.float32, mmap_mode='r')

方案2:使用pandas读取(比numpy.loadtxt再快3~5倍,适合千万级大文件)

pandas的read_csv底层做了大量IO优化,处理空格分隔的大文件效率更高:

import pandas as pd
import numpy as np
# sep='\s+'匹配任意数量空格作为分隔符,header=None说明无表头,跳过第0列文件名
df = pd.read_csv("你的数据集文件路径.txt", sep='\s+', header=None, usecols=range(1, 513), dtype=np.float32)
feat_matrix = df.values

千万级记录用该方案通常仅需3~5分钟即可完成加载。

方案3:预转二进制格式(后续加载速度提升百倍)

如果该数据集需要多次加载,建议第一次读取完成后直接存为numpy专用二进制格式,后续使用时可直接秒加载:

# 第一次读取后存储
np.save("人脸特征集.npy", feat_matrix)
# 后续加载,千万条记录仅需几秒即可完成
feat_matrix = np.load("人脸特征集.npy")

方案4:多进程分块加载(适合超大规模单文件)

如果单文件过大内存无法一次性放下,可以拆分文件为多个块后用多进程并行处理,避开Python GIL限制:

from concurrent.futures import ProcessPoolExecutor
import numpy as np

def process_chunk(lines):
    feats = []
    for line in lines:
        feat = [float(x) for x in line.split()[1:]]
        feats.append(feat)
    return np.array(feats, dtype=np.float32)

if __name__ == "__main__":
    chunk_size = 100000 # 每个块10万行,可根据内存调整
    chunks = []
    with open("你的数据集文件路径.txt", "r") as f:
        temp_lines = []
        for line in f:
            temp_lines.append(line)
            if len(temp_lines) == chunk_size:
                chunks.append(temp_lines)
                temp_lines = []
        if temp_lines:
            chunks.append(temp_lines)
    # 多进程并行处理每个块
    with ProcessPoolExecutor() as executor:
        chunk_results = list(executor.map(process_chunk, chunks))
    # 合并所有块得到完整矩阵
    feat_matrix = np.vstack(chunk_results)

额外优化提示

不要使用多线程做加载,Python多线程受GIL限制无法利用多核优势,IO密集+计算密集的场景用多进程效率更高。

内容的提问来源于stack exchange,提问作者Tim yuan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:06:03