A problem about slicing and indexing in numpy in Python
When you slice a Numpy array, you get a special "slice" object, which holds pointers back into the array it was taken from. So if you do the same slicing operation twice, you'll get two different slice objects, which contain pointers to the same array in memory. (If you compare them using == instead of is, you'll see they compare equal, even though they're different objects.)

You can get the same effect with memoryviews, which are in the standard library. Each memoryview is its own object with its own address, but many memoryviews can point into the same data structure.