我正在尝试使用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),)
有什么建议吗?
答案 0 :(得分:0)
在这种情况下,将np.where()
的两个参数转换为numpy数组,如下所示,将得到预期的结果:
scenariolist=np.array(['scenario.npz', 'scenario1.npz', 'scenario2.npz'])
currscenario=np.array(['scenario1.npz'])
print(np.where(scenariolist==currscenario)) #(array([1]),)
尽管可以在不使用numpy数组的情况下完成,但可以使用index()
用于python列表的方法:
scenariolist.index(currscenario) # 1
但是,如果该值不在列表中,则它是处理ValueError
异常所必需的。
try:
scenariolist.index(currscenario) # 1
except ValueError:
print('currscenario is not in the list')