[英]Find indexes of two lists
我有兩個numpy列表:
x = ['A', 'A', 'C', 'A', 'V', 'A', 'B', 'A', 'A', 'A']
y = ['1', '2', '1', '1', '3', '2', '1', '1', '1', '1']
當x
等於'A'
並且y
等於'2'
時,如何找到索引?
我希望得到索引[1, 5]
。
我嘗試使用: np.where(x == 'A' and y == '2')
但是它沒有幫助我。
您需要將列表轉換為numpy數組才能使用矢量化操作,例如==
和&
:
import numpy as np
np.where((np.array(x) == "A") & (np.array(y) == "2"))
# (array([1, 5]),)
較短的版本(如果您確定x和y是numpy數組):
>>> np.where(np.logical_and(x == 'A', y == '2'))
(array([1, 5]),)
純python解決方案:
>>> [i for i,j in enumerate(zip(x,y)) if j==('A','2')]
[1, 5]
如果要使用列表:
idx1 = [i for i, x in enumerate(x) if x == 'A']
idx2 = [i for i, x in enumerate(y) if x == '2']
list(set(idx1).intersection(idx2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.