Замените значение на np.where и создайте целое число - PullRequest
1 голос
/ 05 августа 2020

У меня есть такой список:

my_list = ['apple', 'orange', 'banana']

Я использую np.where, чтобы заменить «банан» на целое число «5»:

my_list = np.where(my_list=='banana', 5, my_list)

но вывод это

>> ['apple', 'orange', '5'] 

, и мне нужно

>> ['apple', 'orange', 5] 

Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 05 августа 2020

Используйте карту ha sh для словаря, можно представить как словарь:

fruit = {"apple":1, "orange":2, "banana":3}

и просто работать с числами

0 голосов
/ 05 августа 2020

Поскольку вы используете списки python, придерживайтесь python. Это особенно хорошая идея, если вам нужны смешанные типы данных. np.where не будет особенно эффективным при просмотре массива python объектов. Вот решение numpy:

my_list = [5 if x == 'orange' else x for x in my_list]

Кроме того, вы можете создать список индексов, где my_list содержит 'orange', например, форму с 1 аргументом np.where, используя аналогичное понимание:

indices = [i, for i, x in enumerate(my_list) if x == 'orange']
0 голосов
/ 05 августа 2020

Можно ли использовать вместо этого функцию карты ..

my_list = ['apple', 'orange', 'banana']
list(map(lambda x:5 if x=='banana' else x, my_list))
...