Как конвертировать тип этого массива? - PullRequest
0 голосов
/ 28 сентября 2019

Как преобразовать ['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)  

Я хочу, чтобы мои метки были похожи на результат второго кода.С другой стороны, я хочу загрузить их из файла массива вместо того, чтобы читать их повторно.и я хочу, чтобы результат, напрямую или путем добавления дополнительного кода, был: [0. 1. 0. 1. 1. 0.], dtype=np.float32

Может кто-нибудь помочь мне, пожалуйста?Спасибо всем.

1 Ответ

0 голосов
/ 28 сентября 2019
a = ['0' '1' '0' '1' '1' '0']
>>> list(map(float, *a))
[0.0, 1.0, 0.0, 1.0, 1.0, 0.0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...