Как конвертировать только целые числа из массива строк в массив с плавающей точкой в ​​NumPy? - PullRequest
0 голосов
/ 20 февраля 2019

Как преобразовать

["5", "3","Code", "9","Pin"]

в

[5, 3,"Code", 9,"Pin"]

в NumPy?

Это похоже на этот вопрос Как преобразовать массив строкв массив чисел с плавающей точкой в ​​numpy? за исключением того, что есть слова, а есть ли способ?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Предполагая, что ваш список может содержать как int, так и float.(Ваша ссылка содержит float, а ваш пример содержит список), вы можете использовать понимание списка, как показано ниже:

l = ["5", "3","Code", "9", "4.5", "Pin"]

def isfloat(value):
    try:
        float(value)
        return True
    except ValueError:
        return False

l = [int(elem) if elem.isnumeric() else (float(elem) if isfloat(elem) else elem) for elem in l]

Это вернет следующий массив:

[5, 3, "Code", 9, 4.5, "Pin"]
0 голосов
/ 20 февраля 2019

Вы можете использовать понимание списка, чтобы проверить, являются ли элементы в списке числовыми или нет, и вернуть строку или int соответственно:

l = ["5", "3","Code", "9","Pin"]

[int(i) if i.isnumeric() else i for i in l]

Вывод

[5, 3, 'Code', 9, 'Pin']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...