如何转换此数组的类型?

问题描述 投票:0回答:2

如何将['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.]

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

python python-3.x label data-science numpy-ndarray
2个回答
0
投票
a = ['0' '1' '0' '1' '1' '0']
>>> list(map(float, *a))
[0.0, 1.0, 0.0, 1.0, 1.0, 0.0]

0
投票

您需要使用map()将所有数组元素转换为float

var a = ['0', '1', '0', '1', '1', '0'];

var result = a.map(function(element) { 
  return parseFloat(element); 
});
© www.soinside.com 2019 - 2024. All rights reserved.