如何修复mem_labels1添加np.nan后与images1长度不一致问题?
问题修复方案
你的代码核心问题是循环生成mem_labels1后,又用字典的值重新创建数组覆盖了它,直接丢弃了之前循环里添加的np.nan和匹配元素,导致长度和images1不匹配。
修复步骤
- 删除覆盖
mem_labels1的两行错误代码,直接将循环生成的列表转为numpy数组 - 保留原循环的匹配逻辑,确保每个
list_of_done_files中的元素都对应一个标签(或np.nan)
修复后的完整代码
for id_code in list_of_done_files: if id_code in id_mem_dict: mem_labels1.append(id_mem_dict[id_code]) else: mem_labels1.append(np.nan) images1 = np.array(images1, dtype=object) # 直接基于循环生成的列表转换数组,保留所有元素 mem_labels1 = np.array(mem_labels1, dtype=float)
说明
修复后mem_labels1的长度会和list_of_done_files完全一致,而images1是基于同一份list_of_done_files生成的,因此两者元素数量会匹配。
内容的提问来源于stack exchange,提问作者John Johnson
相关产品推荐
相关产品推荐

