python - What does this: s[s[1:] == s[:-1]] do in numpy? -


i've been looking way efficiently check duplicates in numpy array , stumbled upon question contained answer using code.

what line mean in numpy?

s[s[1:] == s[:-1]] 

would understand code before applying it. looked in numpy doc had trouble finding information.

the slices [1:] , [:-1] mean all first , all last elements of array:

>>> import numpy np >>> s = np.array((1, 2, 2, 3))  # 4 element array >>> s[1:] array([2, 2, 3])  # last 3 elements >>> s[:-1] array([1, 2, 2])  # first 3 elements 

therefore comparison generates array of boolean comparisons between each element s[x] , "neighbour" s[x+1], 1 shorter original array (as last element has no neighbour):

>>> s[1:] == s[:-1] array([false,  true, false], dtype=bool) 

and using array index original array gets elements comparison true, i.e. elements same neighbour:

>>> s[s[1:] == s[:-1]] array([2]) 

note identifies adjacent duplicate values.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -