The data attribute of a numpy.ndarray object is a memoryview object, which is an object holding enough information to support the Python buffer protocol in a C API (including a C pointer), but does not have a Python level accessor for the buffer address. The numpy.ndarray.ctypes.data attribute is explicitly "A pointer to the memory area of the array as a Python integer" (https://numpy.org/doc/2.1/reference/generated/numpy.ndarray.ctypes.html)