iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3 如何读取python2的npy文件
  • 612
分享到

python3 如何读取python2的npy文件

2024-04-02 19:04:59 612人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

python3读取python2打包的npy文件会报错,原因是编码方式不同,所以只要在读取的时候加上编码方式即可。 解决方法 docs_train = np.load('./da

python3读取python2打包的npy文件会报错,原因是编码方式不同,所以只要在读取的时候加上编码方式即可。

解决方法


docs_train = np.load('./data/20news_clean/train.txt.npy', allow_pickle=True, encoding='bytes')
docs_test = np.load('./data/20news_clean/test.txt.npy', allow_pickle=True, encoding='bytes')

路径中的文件是Python2打包的。

补充:在Python 3中加载Python 2 .npy文件时出错

我有.npy文件,它们是使用Python 2.7.9和Numpy版本1.11.3通过命令创建的np.save('filename')。这些文件是在外部计算机上生成的,该外部计算机是我们研究所的linux集群的一部分。

我将文件复制到本地计算机上,以便通过导入它们np.load('filename.npy')。在我的本地计算机上,我正在运行带有Jupyter-Notebook的Python 3.5.2和Numpy版本1.13.0。

本地操作系统ubuntu 16.04.2。

当我尝试在本地加载文件时,出现错误:


ValueError: invalid literal for int() with base 16

浏览了一些Stackoverflow问题后,我尝试使用以下方式指定编码:


np.load('filename.npy',encoding='latin1')

这给出了相同的错误。encoding='bytes'产量:


TypeError: can't multiply sequence by non-int of type 'float'

这是Traceback的较大片段:


/usr/local/lib/python3.5/dist-packages/numpy/lib/npyio.py in load(file, mmap_mode, allow_pickle, fix_imports, encoding)
417       else:
418         return fORMat.read_array(fid, allow_pickle=allow_pickle,
--> 419                     pickle_kwargs=pickle_kwargs)
420     else:
421       # Try a pickle

/usr/local/lib/python3.5/dist-packages/numpy/lib/format.py in read_array(fp, allow_pickle, pickle_kwargs)
638       pickle_kwargs = {}
639     try:
--> 640       array = pickle.load(fp, **pickle_kwargs)
641     except UnicodeError as err:
642       if sys.version_info[0] >= 3:

/usr/local/lib/python3.5/dist-packages/sympy/core/numbers.py in __new__(cls, num, prec)
823         else:
824           _mpf_ = mpmath.mpf(
--> 825             S.NegativeOne**num[0]*num[1]*2**num[2])._mpf_
826     elif isinstance(num, Float):
827       _mpf_ = num._mpf_

TypeError: can't multiply sequence by non-int of type 'float'

我猜想在Python和Numpy版本之间的转换时,编码有问题。关于如何导入文件的任何想法?

解决方案

如中所示,*。npy中数据的存储方式是什么?,.npy文件为字节码,如果您在十六进制编辑器中打开一个字节码,则会看到该文件。

Python 2字节码.pyc,.pyo文件无法在Python 3中运行,因为虚拟机和编译器内部版本已随主要版本更改。

同样,NumPy的C内部结构和字节码编译器在Python 3中也发生了变化,从而破坏了向后兼容性。(这是有意的,因为字节码并不是要持续那么长时间,或者不能与所创建的版本一起使用。)

这些变更的组成意味着,如果不对Python 3的字节码解释器和Python 3的NumPy进行大的更改,和/或从Python 2 NumPy字节码到Python 3的转译器,则无法使用这些Python 2 .npy文件。 Python 3。

正如我之前提到的,这有点像X / Y问题。您不应该依赖.npy文件在各个版本之间工作,因为不能保证它们会保持一致,因为它们本质上是易失性格式(例如Python VM字节码)。

与其对字节码进行逆向工程以对其进行调试,不如尝试获取生成这些文件的源。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

--结束END--

本文标题: python3 如何读取python2的npy文件

本文链接: https://www.lsjlt.com/news/122444.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3 如何读取python2的npy文件
    python3读取python2打包的npy文件会报错,原因是编码方式不同,所以只要在读取的时候加上编码方式即可。 解决方法 docs_train = np.load('./da...
    99+
    2024-04-02
  • 使用python3怎么读取python2中的npy文件
    这篇文章给大家介绍使用python3怎么读取python2中的npy文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python3读取python2打包的npy文件会报错,原因是编码方式不同,所以只要在读取的时候加上...
    99+
    2023-06-14
  • Python中如何读取npy、npz文件?
    npy以及npz这两种文件格式,是python第三方库numpy才能够保存和读取的文件类型,而也只有通过该库才有方法来完成读取保存操作。下面这篇文章所要介绍的内容就是,python读取和保存npy、npz文件的方法,想学习的小伙伴可以往下看...
    99+
    2023-09-07
    python numpy 开发语言
  • python读取npy文件数据实例
    目录1. 读取与保存2. 实战案例附:python中 .npy文件的读写操作实例总结Numpy binary files (NPY, NPZ) 注:.npy文件是numpy专用的二进...
    99+
    2024-04-02
  • python怎么读取npy文件数据
    这篇文章主要介绍“python怎么读取npy文件数据”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么读取npy文件数据”文章能帮助大家解决问题。注:.npy文件是numpy专用的二进制...
    99+
    2023-06-30
  • python3读取pdf文件
    一.安装pdfminer3k模块二.读取pdf文件import sys import importlib importlib.reload(sys) from pdfminer.pdfparser import PDFParser, P...
    99+
    2023-01-31
    文件 pdf
  • python如何批量读取.mat文件并保存成.npy
    目录python批量读取.mat文件并保存成.npypython读取.mat文件时出现错误解决总结python批量读取.mat文件并保存成.npy import numpy as n...
    99+
    2022-12-14
    python批量读取mat文件 读取mat文件保存成npy python读取mat文件
  • Python实现npy/mat文件的保存与读取
    目录1. npy文件2. mat文件补充读取mat文件并存为npy格式文件npy文件的读取很简单重新读取npy文件保存为mat文件除了常用的csv文件和excel文件之外,我们还可以...
    99+
    2024-04-02
  • Python3 读取 ini 配置文件(
    【背景】  Windows 的记事本会给 UTF-8 文件添加 BOM 头,很烦,搞个通用的读取配置文件的代码。可能报这种错误:configparser.MissingSectionHeaderError: File contains no...
    99+
    2023-01-31
    配置文件 ini
  • Python3 读取 toml 配置文件
    【吐槽】    先吐槽一下其他几个配置文件。ini:表达能力不够,比如不能表达列表等结构;没有官方注释符号,虽然一般以分号作为注释符号。json:没有官方注释符号,虽然某些第三方包提供了注释结构。yaml:语法比较复杂,可读性不太高。【to...
    99+
    2023-01-31
    配置文件 toml
  • Python3读取文件的操作详解
    目录1、引言2、 fileinput2.1 方法介绍2.2 默认读取2.3 处理一个文件2.4 处理批量文件2.5 读取与备份2.5 重定向替换2.6 进阶3、总结1、引言 小鱼:小...
    99+
    2024-04-02
  • python3 文件的读取和通用操作
    import os           # 当前操作目录,os.chdir() 切换操作目录 >>> import os >>> os.getcwd() 'C:\\ProgramFiles\\Pyth...
    99+
    2023-01-31
    操作 文件
  • 解决python 读取npy文件太大不能完全显示的问题
    python读取npy文件时,太大不能完全显示,其解决方法 当用python读取npy文件时,会遇到npy文件太大,用print函数打印时不能完全显示,如以下情况: 解决办法 添加...
    99+
    2024-04-02
  • pycharm如何读取文件
    在 pycharm 中读取文件,遵循以下步骤:导入 os 模块。使用 open() 函数打开文件,指定路径和打开模式(如 "r")。使用 read()、readline() 或 read...
    99+
    2024-04-18
    python pycharm 标准库
  • springboot如何读取sftp的文件
    目录springboot读取sftp的文件1.添加pom依赖(基于springboot项目)2.application.yaml配置文件3.工具类4.实际调用springboot使用...
    99+
    2024-04-02
  • 解决jupyter (python3) 读取文件遇到的问题
    1、出现错误 train_df = pd.read_csv( 'C:\Users\lenovo\Desktop\train.csv',encoding='utf-8') 报...
    99+
    2024-04-02
  • 使用python3怎么读取文件指定行
    使用python3怎么读取文件指定行?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。行遍历实现在python中如果要将一个文件完全加载到内存中,通过file.readlines(...
    99+
    2023-06-15
  • dom4j如何读取XML文件
    小编给大家分享一下dom4j如何读取XML文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!dom4j是一个Java的XML API,类似于jdom,用来读写XM...
    99+
    2023-05-30
    dom4j xml
  • python如何读取cad文件
    使用python读取cad文件的方法:1.新建python项目;2.导入dxfgrabber模块;3.使用dxfgrabber.readfile()方法打开文件;4.使用layer方法获取文件内容;具体步骤如下:首先,打开python,并新...
    99+
    2024-04-02
  • python如何读取.mtx文件
    mtx文件是按照稀疏矩阵格式存储的矩阵数据,可以按照以下步骤读取: 1、安装scanpy包 pip install scanpy 2、文件读取 import scanpy ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作