如何用Python/Numpy对OpenAI嵌入向量数组按元素求均值?
计算嵌入向量对应位置均值的最简高效实现方法
假设你已经通过OpenAI接口获取到所有嵌入向量,存储在列表(如embeddings_list)中,每个元素是1536维数组。用Python/Numpy实现的最简高效方案如下:
- 核心逻辑:将向量列表转为Numpy二维数组,直接调用均值函数按列计算(即所有向量对应位置的平均值)。
- 代码实现:
import numpy as np # 示例:模拟从OpenAI获取的10个1536维嵌入向量 embeddings_list = [np.random.rand(1536) for _ in range(10)] # 计算对应位置元素的平均值,得到1536维数组 average_embedding = np.mean(embeddings_list, axis=0)
关键说明
axis=0参数指定沿着列维度计算均值,正好匹配“所有向量同一位置元素求平均”的需求。- Numpy的均值函数基于底层C优化实现,比手动循环计算效率高得多,向量数量越多优势越明显。
- 若嵌入向量初始是Python列表而非Numpy数组,
np.mean会自动完成类型转换,无需额外处理。
内容的提问来源于stack exchange,提问作者Alejandro Galache
相关产品推荐
相关产品推荐

