This is almost what I had before. The key argument against it was that np.abs(data) creates a float array which is 8 times larger than a bool/byte array of the same size.

Before I had saved these absolute values to a variable, making them persist for longer. So your proposition seems like the golden middle between the two.