numpy.ndarray — NumPy v1.24 Manual
numpy.org › reference › generatedThere are two modes of creating an array using __new__: If buffer is None, then only shape, dtype, and order are used. If buffer is an object exposing the buffer interface, then all keywords are interpreted. No __init__ method is needed because the array is fully initialized after the __new__ method.