解決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’]]
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- 解決numpy和torch數據類型轉化的問題
- Python 用NumPy創建二維數組的案例
- Python NumPy教程之數據類型對象詳解
- 教你利用python如何讀取txt中的數據
- python中NumPy的安裝與基本操作