解决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\’]]

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容