当前位置 博文首页 > 解决python3 中的np.load编码问题

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

    作者:IFT_jason 时间:2021-05-05 18:12

    由于在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']]

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

    js