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

如何遍历二维NumPy数组并打印非NaN值?

解决你的NumPy数组非NaN值遍历问题

你的代码问题出在这几点:

  1. 循环逻辑错误:for i in flower_matrix遍历的是数组的每一行,不是行索引;内层再遍历flower_matrix还是取行,根本没法定位单个元素
  2. NaN判断方式错误:NaN和任何值(包括自身)比较结果都是False,不能用!= NaN来判断
  3. 元素访问方式错误:你用(i,j)作为索引,但i、j都是行数组,不是整数索引,自然访问不到正确元素

方案1:用索引遍历(新手友好,直观)

先获取数组的行列数,通过整数索引逐个访问元素,结合np.isnan()判断是否为非NaN值:

import numpy as np

rows, cols = flower_matrix.shape
for i in range(rows):
    for j in range(cols):
        current_val = flower_matrix[i, j]
        if not np.isnan(current_val):
            print(f"位置({i},{j}):{current_val}")

方案2:用NumPy内置操作(更高效,推荐)

NumPy不建议手动循环,用向量化操作能更快筛选非NaN值,还可同时获取元素位置:

仅获取所有非NaN值

non_nan_vals = flower_matrix[~np.isnan(flower_matrix)]
print("所有非NaN值:", non_nan_vals)

同时获取元素位置与对应值

# 获取所有非NaN值的索引
non_nan_indices = np.argwhere(~np.isnan(flower_matrix))
for idx in non_nan_indices:
    row, col = idx
    print(f"位置({row},{col}):{flower_matrix[row, col]}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:48:14