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

for循环内填充空numpy数组,二维数组逐行求和存储失败如何解决

问题原因分析

  • 形状定义错误:你声明的(100,0)数组第二个维度长度为0,根本无法存储100个行求和的结果,你实际需要的是形状为(100,)的一维数组,或者(100,1)的二维数组。
  • 实现逻辑错误:你的代码中每次np.append的结果赋值给了新变量array,并没有修改原x_new,循环结束后x_new还是初始的空数组。同时循环调用np.append会每次重新生成完整数组,性能开销极大。

最优解决方案

numpy原生支持按指定维度求和,不需要手写循环,一行代码即可完成需求:

# 得到形状为(100,)的一维结果数组,每个元素对应X一行的和
x_new = X.sum(axis=1)

如果你确实需要二维格式的结果(形状为(100,1)),可以添加keepdims参数:

x_new = X.sum(axis=1, keepdims=True)

原循环写法的修正方案(仅做参考,不推荐生产环境使用)

如果你一定要用循环实现,推荐直接初始化固定长度的数组再赋值,避免反复append:

x_new = np.empty(100)
for i in range(len(X)):
    x_new[i] = X[i].sum()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:18:00