Under the hood, Numpy arrays are C arrays, and therefore explicitly copying is needed to create copies and not have them point to the same memory. Ugh ugh ugh this cost me 1.5 hour.