np.where не возвращает никакого индекса в списке строк - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь использовать np.where для доступа к порядковому номеру строки в списке строк.Это для настройки автоматического моделирования, чтобы отслеживать текущие и завершенные сценарии.Мне не удалось получить аналогичную версию следующего скрипта для получения правильных результатов.Пустой массив возвращается, когда я ожидаю, что будет возвращен индекс 1.

 import numpy as np

 scenariolist=['scenario.npz', 'scenario1.npz', 'scenario2.npz']
 currscenario='scenario1.npz'

 print(np.where(scenariolist==currscenario))

Возвращает:

 (array([], dtype=int64),)

Есть предложения?

1 Ответ

0 голосов
/ 17 октября 2018

В этом случае преобразование обоих аргументов для np.where() в числовые массивы следующим образом даст ожидаемый результат:

scenariolist=np.array(['scenario.npz', 'scenario1.npz', 'scenario2.npz'])
currscenario=np.array(['scenario1.npz'])

print(np.where(scenariolist==currscenario)) #(array([1]),)

Хотя это можно сделать без использования числовых массивов, но index()метод для списков Python:

scenariolist.index(currscenario) # 1 

Но если значение отсутствует в списке, необходимо обработать ValueError исключение.

try:
    scenariolist.index(currscenario) # 1 
except ValueError:
    print('currscenario is not in the list')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...