Numpy.where有逻辑

时间:2017-08-16 14:37:42

标签: python numpy

000000000
000050000
000505000
005000500
050000050
500040005
050000050
005000500

在这个例子中,我想找到与4在同一行的5s的索引。我已经将4的索引保存为centre

所需的输出为[[5,0],[5,8]]

我尝试了这个,但它不起作用:

index = zip(*np.where(array== 5 and x == centre[0]))

2 个答案:

答案 0 :(得分:0)

列表理解的解决方案:

arr = ['000000000',
       '000050000',
       '000505000',
       '005000500',
       '050000050',
       '500040005',
       '050000050',
       '005000500']

indices = [[j, i] 
           for j, row in enumerate(arr)
           for i, val in enumerate(row) 
           if '4' in row and val=='5']

print(indices)
# [[5, 0], [5, 8]]

答案 1 :(得分:0)

通过执行index = zip解决它(* np.where(array [center [0],:] == 5))