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

Python数组统计1的数量结果始终为0,求问题排查

问题分析与修复

核心问题1:行列数赋值颠倒

你把数组的行数和列数搞反了:

  • len(myarray[0,:]) 获取的是第一行的元素个数,也就是数组的列数
  • len(myarray[:,1]) 获取的是第二列的元素个数,也就是数组的行数
    原本的rows和columns赋值完全颠倒,导致循环范围错误,无法遍历到正确的数组元素。

核心问题2:内层循环变量未重置

内层循环的j仅在初始化时设为0,第一次外层循环(i=0)执行完后,j已经等于columns,后续外层循环(i≥1)时,j < columns的条件直接不成立,根本不会遍历后面的行,自然统计不到后续行里的1。

修复后的代码

# 修正行列数的赋值逻辑
rows = len(myarray[:, 1])
columns = len(myarray[0, :])
number_of_coordinates = 0
i = 0
while i < rows:
    # 每次外层循环开始时重置j为0
    j = 0
    while j < columns:
        if int(myarray[i][j]) == 1:
            print("Found one!")
            number_of_coordinates += 1
        j += 1
    i += 1
print(number_of_coordinates)

更简洁的替代写法(可选)

用for循环可以避免手动管理循环变量的问题,代码可读性更强:

number_of_coordinates = 0
for row in myarray:
    for num in row:
        if int(num) == 1:
            print("Found one!")
            number_of_coordinates += 1
print(number_of_coordinates)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:35:17