解决python3 中的np.load编码问题

由于在Python2 中的默认编码为ASCII,但是在Python3中的默认编码为UTF-8。

问题:

所以在使用np.load(det.npy)的时候会出现错误提示:

you may need to pass the encoding= option to numpy.load

解决方法:

当遇到这种情况的时候,用np.load(det.npy,encoding="latin1")就可以了。

补充:python解决numpy导入乱码问题------已解决

使用numpy的loadtxt时,发现报错。

经历如下:

// Visual Studio Code
var foo = 'bar';
import numpy as np
if __name__ == "__main__":
 dataset = np.loadtxt("C:/Users/yanruyu/Documents/code/python/GA/dataset.txt")
 print(dataset)

打印出的结果:

ValueError: could not convert string to float: '1,1锛孉'

解决经历:

第一次:

// Visual Studio Code
var foo = 'bar';
import numpy as np
if __name__ == "__main__":
 dataset = np.loadtxt("C:/Users/yanruyu/Documents/code/python/GA/dataset.txt",dtype="str") #默认为float,需要dtype
 print(dataset)

打印出的结果:

['1,1锛孉' '1,2锛孉' '1.5,1.5锛孉' '3,4锛孊' '4,4锛孊']

第二次:

// Visual Studio Code
var foo = 'bar';
import numpy as np
if __name__ == "__main__":
 dataset = np.loadtxt("C:/Users/yanruyu/Documents/code/python/GA/dataset.txt",dtype="str",encoding='utf-8') #默认为float,需要dtype
 print(dataset)

打印出的结果:

['1,1,A' '1,2,A' '1.5,1.5,A' '3,4,B' '4,4,B']

优化后

// Visual Studio Code
var foo = 'bar';
import numpy as np
if __name__ == "__main__":
 dataset = np.loadtxt("C:/Users/yanruyu/Documents/code/python/GA/dataset.txt",dtype="str",encoding='utf-8',delimiter=',') #默认为float,需要dtype
 # x=dataset[:,:-1]
 print(dataset)

打印的结果:

PS C:\Users\yanruyu> & D:/Anaconda3/python.exe c:/Users/yanruyu/Documents/code/python/GA/text.py

[['1' '1,A']

['1' '2,A']

['1.5' '1.5,A']

['3' '4,B']

['4' '4,B']]

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

(0)

相关推荐

  • 基于Python2、Python3中reload()的不同用法介绍

    reload() 简介 作用:用于重新载入之前载入的模块 语法格式:reload(module) 参数:module为模块对象,必须已经被加载 返回值:返回模块对象 注意事项: 多次重复使用import语句时,不会重新加载被指定的模块,只是把对该模块的内存地址给引用到本地变量环境. reload()会重新加载已加载的模块,重新编译模块,重新执行模块级代码,但是__init__函数不再重复执行,原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块:reload后还是用原来的内存地址:

  • Python Json模块中dumps、loads、dump、load函数介绍

    Json模块dumps.loads.dump.load函数介绍 1.json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数. import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} jsObj = json.dumps(name_emb) print(name_emb) print(jsOb

  • 详谈python3 numpy-loadtxt的编码问题

    如下所示: data_array = np.loadtxt(filename, #文件名 delimiter=',', #分隔符 skiprows=1, #跳过第一行 dtype=bytes, #数据类型 usecols=use_col_index_lst).astype(str) #用指定列 ''' I think np.loadtxt("tile", dtype=bytes, delimiter="\n").astype(str) might work, but

  • python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)

    python3 json数据格式的转换(dumps/loads的使用.dict to str/str to dict.json字符串/字典的相互转换) Python3 JSON 数据解析 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数: json.dumps(): 对数据进行编码. json.loads(): 对数据进

  • 解决python3 中的np.load编码问题

    由于在Python2 中的默认编码为ASCII,但是在Python3中的默认编码为UTF-8. 问题: 所以在使用np.load(det.npy)的时候会出现错误提示: you may need to pass the encoding= option to numpy.load 解决方法: 当遇到这种情况的时候,用np.load(det.npy,encoding="latin1")就可以了. 补充:python解决numpy导入乱码问题------已解决 使用numpy的loadtx

  • 解决Python3中的中文字符编码的问题

    python3中str默认为Unicode的编码格式 Unicode是一32位编码格式,不适合用来传输和存储,所以必须转换成utf-8,gbk等等 所以在Python3中必须将str类型转换成bytes类型的 在Python中使用encode的方式可以进行字符的编码 实际用法: >>>a = "中国" >>> a.encode("utf-8") b'\xe4\xb8\xad\xe5\x9b\xbd' >>> a.

  • 解决python3中解压zip文件是文件名乱码的问题

    在zip标准中,对文件名的 encoding 用的不是 unicode,而可能是各种软件根据系统的默认字符集来采用(此为猜测),因此zipfile中根据文件 flag 检测的时候,只支持 cp437 和 utf-8. 具体就是查找 zipfile.py 源代码找到下面的代码: 1: if flags & 0x800: 2: # UTF-8 file names extension 3: filename = filename.decode('utf-8') 4: else: 5: # Histo

  • 解决python3中的requests解析中文页面出现乱码问题

    第一部分 关于requests库 (1) requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到. (2) 其中的Request对象在访问服务器后会返回一个Response对象,这个对象将返回的Http响应字节码保存到content属性中. (3) 但是如果你访问另一个属性text时,会返回一个unicode对象,乱码问题就会常常发成在这里. (4) 因为Response对象会通过另一个属性encoding来将字节码编码成unicode,而这个en

  • 解决python3中cv2读取中文路径的问题

    如下所示: python3: img_path =  ' ' im = cv2.imdecode(np.fromfile(img_path,dtype = np.uint8),-1) save_path =  ' ' cv2.imencode('.jpg',im)[1].tofile(save_path) python2.7: img_path = ' ' im = cv2.imread(img_path.decode('utf-8')) 以上这篇解决python3中cv2读取中文路径的问题就是

  • 解决python3中os.popen()出错的问题

    使用程序难免会有出错的时候,如何从大篇代码中找出错误,不仅考验能力,还要考验小伙们的耐心.辛辛苦苦敲出的代码运行不出结果,非常着急是可以理解的.那么我们在python3中使用os.popen()出错该怎么办?本篇文章小编同样以错误的操作方法为大家进行讲解,一起找寻不对的地方吧. 在当前 desktop 目录下,有如下内容: desktop $ls client.py server.py 中文测试 arcpy.txt codetest.py test.py 如上所示:有一个中文命名的文件 ----

  • 解决python3中自定义wsgi函数,make_server函数报错的问题

    #coding:utf-8 from wsgiref.simple_server import make_server def RunServer(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return '<h1>Hello, web!</h1>' if __name__ == '__main__': httpd = make_server('localho

  • python3中编码获取网页的实例方法

    学了python后,之前一些我们常用的方法,也可以换一种思路用python中的知识来解决.相信操作出来后,能收获一大批小粉丝们.就像我们没学习编程之前,看到那种大神都是可望而不可即.今天我们就之前简单获取网页的这种操作用python中的编码来解决,大家可以自行体会一下两者的不同. 1. encoding和apparent_encoding import scrapy url="https://www.xxx.net/html/gndy/dyzz/index.html" re=reque

  • 解决python2中unicode()函数在python3中报错的问题

    python2中的unicode()函数在python3中会报错: NameError: name 'unicode' is not defined There is no such name in Python 3, no. You are trying to run Python 2 code in Python 3. In Python 3, unicode has been renamed to str. 翻译过来就是:Python 3中没有这样的名字,没有. 您正在尝试在Python

  • 解决Java中properties文件编码问题

    目录 1.properties文件显示乱码问题 2.读取properties文件乱码 3.Spring boot的@ConfigurationProperties读取properties文件乱码 总结 1.properties文件显示乱码问题 原因是因为properties默认使用ASCII码,就算在文件中填写了中文,再打开后依然会转换成ASCII码的形式.首先确定properties配置文件的编码格式,通常情况下properties的默认编码格式为ISO-8859-1.更改properties

随机推荐