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

如何对形状为(1000,2048)的NumPy数组计算2048维均值向量?

解决方法

你的问题出在遍历和均值计算的维度上:原函数是对**每个样本(每行)计算均值,所以得到1000个单值(每个样本的平均),最终输出形状为(1000,)。而你需要的是对每个特征维度(每列)**计算所有样本的均值,得到2048维的向量。

最优解法:直接用NumPy的axis参数

NumPy的mean函数支持指定计算均值的轴,直接指定axis=0就能沿着样本维度(第0轴)计算每列的均值,一步到位,效率远高于手动循环:

import numpy as np

def get_means(f_embeddings):
    return np.mean(f_embeddings, axis=0)

手动遍历的写法(如果需要循环实现)

如果一定要用遍历方式,需要遍历每个特征索引,然后提取所有样本在该索引上的特征值计算均值:

import numpy as np

def get_means(f_embeddings):
    means = []
    # 遍历2048个特征维度
    for feature_idx in range(f_embeddings.shape[1]):
        # 取出所有样本的第feature_idx个特征,计算均值
        feature_mean = np.mean(f_embeddings[:, feature_idx])
        means.append(feature_mean)
    return np.array(means)

原函数问题的细节

原代码中for embedding in f_embeddings是遍历数组的第0轴,每次拿到的是一个形状为(2048,)的行向量(单张图像的特征),对其求均值会得到该图像所有特征的平均值(一个单值),最终收集1000个这样的值,所以输出形状为(1000,)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:12:12