如何转换此数组的类型?

时间:2019-09-28 15:20:46

标签: python numpy

如何将['0' '1' '0' '1' '1' '0']转换为[0. 1. 0. 1. 1. 0.]

第一个数组是使用以下代码创建的:

       for filename in os.listdir("Data//Descriptions"):
         f = open("Data/Descriptions/" + filename)
         for i, line in enumerate(f):
            if "b_m" in line:
                if line[27] == "b":
                    all_labels.append("0")
                elif line[27] == "m":
                    all_labels.append("1")
                else:
                    all_labels.append("")
         np.save("Labels.npy" , all_labels)

,当我将标签加载为np.load('Labels.npy')时,它的dtype是:array(['0' '1' '0' '1' '1' '0'], dtype='<U1')

第二个使用以下代码创建:

    for filename in os.listdir("Data//Descriptions"):
        f = open("Data/Descriptions/" + filename)
        for i, line in enumerate(f):
            if "b_m" in line:
                if line[27] == "b":
                    all_labels.append("0")
                elif line[27] == "m":
                    all_labels.append("1")
                else:
                    all_labels.append("")

    all_labels = np.asarray(all_labels , dtype=np.float32)  

我希望我的标签像第二个代码结果。另一方面,我想从numpy数组文件中加载它们,而不是重复读取它们。 我希望结果直接或通过添加更多代码成为:[0. 1. 0. 1. 1. 0.]dtype=np.float32

有人可以帮我吗?谢谢大家。

1 个答案:

答案 0 :(得分:0)

a = ['0' '1' '0' '1' '1' '0']
>>> list(map(float, *a))
[0.0, 1.0, 0.0, 1.0, 1.0, 0.0]