extract non-incremental rows from numpy array

I need to remove the "caps" of long polygon(road) features. The caps are created by boundary lines. Each line can slice the same polygon multiple times. After converting the line to points I'm able to select the points touching the polygon. But the selection can contain multiple start-end-points for each slice.

Here's the array of selected points.

[

(6, [163320.90700000152, 379580.6550000012])

(7, [163320.90900000185, 379580.34699999914])

(8, [163320.92320000008, 379577.6838000007])

(9, [163320.941300001, 379574.2791999988])

(10, [163320.95899999887, 379570.9439999983])

(11, [163320.97700000182, 379567.63800000027])

(12, [163320.98000000045, 379567.12000000104])

(27, [163321.24599999934, 379517.67599999905])

(28, [163321.26900000125, 379513.493999999])

(29, [163321.28799999878, 379509.9620000012])

(30, [163321.3040000014, 379506.8920000009])

]

And this is my goal output-array. I need these corners!

[

(6, [163320.90700000152, 379580.6550000012])

(12, [163320.98000000045, 379567.12000000104])

(27, [163321.24599999934, 379517.67599999905])

(30, [163321.3040000014, 379506.8920000009])

]

At first I tried to use the searchcursor, but i was unable to identify the next-id in a loop to see if it's ID is just+1. So my thought is to use the numpy array, but i'm still on the ground...

How do I loop this numpy array or mayby use some smart numpy function to remove unwanted rows from the array?

Thanks for your reaction. I think I understand what youre showing me. I see I can just grab the proper rows from the array when i identified them. But how do I extract the ID from the next element in the array when looping?