> The reason for this in numpy-land that you need to know the size of the object ahead of time to efficiently allocate space for it. 

Generators can have a `__len__