由于在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时,发现报错。
经历如下:
1
2
3
4
5
6
|
/ / 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锛孉'
解决经历:
第一次:
1
2
3
4
5
6
|
/ / 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锛孊']
第二次:
1
2
3
4
5
6
|
/ / 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']
优化后
1
2
3
4
5
6
7
|
/ / 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']]
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/infinite_jason/article/details/77678305