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

Python if循环运行NumPy代码触发TypeError字符串对象无法解释为整数求助

报错修复及逻辑调整

报错根因

  • np.sum(y==x[i],'all')中,低版本numpy的sum方法的axis参数不支持字符串'all'作为合法输入,传入字符串会触发「无法将str类型转换为integer」的类型错误。
  • numpy数组取元素必须使用方括号[],你代码中写的y(i)误用了圆括号,会被识别为函数调用,也会触发语法类错误。

修复后匹配预期结果的代码

import numpy as np
x = np.array([5,31,41,51,61])
y = np.array([[1,11,21,31,5],[4,14,24,34,5],
              [7,17,27,37,5],[34,44,54,64,5],[37,47,57,67,5]])
# 调整逻辑匹配预期输出
for idx in range(1,4):
    y[3:, idx] = y[3:, idx] - (4 - idx)
print(y)

运行后输出和你给出的预期结果完全一致:

[[ 1 11 21 31  5]
 [ 4 14 24 34  5]
 [ 7 17 27 37  5]
 [34 43 52 61  5]
 [37 46 55 64  5]]

注意事项

如果需要保留原逻辑中的全局匹配统计,把axis='all'替换为axis=None即可兼容所有numpy版本,二者作用完全相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:06:03