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

使用NumPy计算嵌套列表子列表列均值失败,如何正确实现?

计算嵌套子列表的列均值问题解决

原代码无效的原因

你写的循环里,c = np.mean(np.array(c), axis=0)只是给循环临时变量c重新赋值,并没有修改原centroids列表中的元素,所以原列表不会产生任何变化。

正确实现方式

方法1:通过索引修改原列表

直接遍历列表索引,将计算后的列均值赋值回原列表对应位置:

import numpy as np
centroids = [[[3, 2]], [[2, 3], [3, 4], [2, 3]], [[1, 2], [3, 4]]]

for i in range(len(centroids)):
    # 将子列表转成numpy数组,计算列均值后转回列表
    centroids[i] = np.mean(np.array(centroids[i]), axis=0).tolist()

print(centroids)

方法2:用列表推导式生成新结果列表(更简洁)

如果不需要修改原列表,直接生成包含所有列均值的新列表:

import numpy as np
centroids = [[[3, 2]], [[2, 3], [3, 4], [2, 3]], [[1, 2], [3, 4]]]

result = [np.mean(np.array(sub_list), axis=0).tolist() for sub_list in centroids]

print(result)

保留指定小数位数(如一位小数)

如果需要和你期望的[2.3, 3.3]格式一致,可以用np.round()处理精度:

result = [np.round(np.mean(np.array(sub_list), axis=0), 1).tolist() for sub_list in centroids]

运行后得到的结果为:[[3.0, 2.0], [2.3, 3.3], [2.0, 3.0]],完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:50:09