Заменить текст другими значениями в массиве Numpy

#python #numpy

#python #numpy

Вопрос:

Я успешно возвращаю массив, который отображает идеальный путь между узлами в сети.

Результат (для примера i, j пары) примерно такой.

 1>34>65>23>742
  

Теперь я хотел бы заменить числа названием города, который он представляет, например, Сан-Франциско (SFO), чтобы он выглядел примерно так

 SFO>LAX>DFW>JFK
  

Я пытался использовать функции replace, но безуспешно.

     for z in range(len(names)):
        nextstop = [sub.replace(z, names[z]) for sub in nextstop]
  

Где names содержит названия аэропортов в том же порядке / индексе, что и числа.

Спасибо!

где числа представляют

Комментарии:

1. Я не знаю чисел, представляющих города, но я предлагаю использовать метод re.sub из модуля re

Ответ №1:

Попробуйте что-то вроде этого:

 cities = [names[int(x)] for x in "1>34>65>23>742".split(">")]
">".join(cities)
  

Происходит то, что "1>34>65>23>742".split(">") дает вам список чисел в виде строк. Затем понимание списка [names[int(x)] for x in "1>34>65>23>742".split(">")] принимает каждую из этих строк, превращает их в числа и просматривает их names . Итак, теперь у нас есть список чисел. Наконец "<".join , снова возвращает их в ваш строковый формат.