For my data processing, I have to do the intersect based on the new Index2 and the inverse of Index1. Unfortunately, even if I generate my Index2 using the same approach, the below code gives me an error:

using InvertedIndices
intersect(Not(Index1), Index2)

Error message: MethodError: no method matching length(::InvertedIndex{Vector{CartesianIndex{1}}})

I do need my Index1. It was generated through a very complex process. Basically, I need to first process the first batch of data based on Index1, then I need to find matching data from the remaining rows, thus the need for an inverse Index1.

It seems that the Cartesian index is not very user friendly after all. Maybe I should try to figure out how to generate a regular Boolean index in the first place?