I have a data-array like:
all = [[1,-1], [1,0], [1,1], [2,-1], [2,0], [2,1]] etc.
It has about 4000 pairs in it, but typically fewer on the order of a few hundred.
I need to find whether a two-valued array already exists in this large data-array, eg.
does [1,1]
exist in the array?
So the function I need should act something like this:
isValid( all, [1,1] ) >>> True isValid( all, [1,100] ) >>> False
I couldn’t get the numpy functions isin()
or in1d()
to do this for me. The one function I did find works, for lists, is:
all.index( [1,1] ) >> True
but when the arg is not in the all
array, I have to try/catch a ValueError
and then return False
– acceptable for now, but not ideal.
Advertisement
Answer
You can use simple array lookup like this:
a = [[1,-1], [1,0], [1,1], [2,-1], [2,0], [2,1]] [2,0] in a # True [2,3] in a # False
or
a.index([2,0]) # result: 4 a.index([3,5]) # throw error, use try catch