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

Python Numpy数组索引过滤遇numpy.int64不可迭代问题处理

错误原因
  • 报错TypeError: 'numpy.int64' object is not iterable的核心是错误使用了列表的extend()方法:extend()要求传入可迭代对象(如列表、数组等),但代码中v = equals[count]取到的是单个numpy.int64类型的数值,不属于可迭代对象,因此触发类型错误。
修复方案

只需要把函数中store_sets.extend(v)修改为store_sets.append(v)即可:
append()方法的作用就是往列表中添加单个元素,完全符合当前场景的需求。

修改后的完整函数代码如下:

def differences(filter_vals, store_sets):
    for count, (d,y) in enumerate(zip(all_data,filter_vals)):
        if d == y:
            v = equals[count]
            store_sets.append(v)
    print(store_sets)
更简洁的numpy向量化实现(可选)

如果不想写循环,可以直接用numpy的布尔掩码实现同样的效果,代码更短执行效率也更高:

set1 = equals[all_data == filtered_set].tolist()
set2 = equals[all_data == filtered_set2].tolist()

运行后得到的结果和预期完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:36:04