Python3中numpy.save()保存数组失败,如何解决?
解决NumPy数组保存失败的问题
核心错误原因
你手动打开文件时使用了文本写入模式'w',但np.save()需要以**二进制写入模式'wb'**操作文件,这是导致保存失败、文件大小为0且报错的根本原因。
修正后的代码
方式1:修正文件打开模式
saveFilePath = Path(fc.selected, saveFolder, saveFileName+'.npy') # 改用二进制写入模式打开文件 saveFile = open(saveFilePath, 'wb') np.save(saveFile, vz[key1][key2][key3]) saveFile.close() # 手动打开文件后记得关闭
方式2:更简洁的推荐写法
np.save()支持直接传入文件路径(字符串或Path对象),无需手动处理文件的打开和关闭,它会自动完成这些操作:
saveFilePath = Path(fc.selected, saveFolder, saveFileName+'.npy') np.save(saveFilePath, vz[key1][key2][key3])
关于“之前成功”的疑问
你之前用相同方法成功保存数组属于偶然情况,文本模式下写入二进制数据本身就不符合np.save()的要求,这种写法存在隐患,不建议依赖。
数组本身无异常
从你提供的数组截图来看,这是一个结构正常的NumPy多维数组,数据格式不会影响保存操作。
内容的提问来源于stack exchange,提问作者Kas Knicely
相关产品推荐
相关产品推荐

