Existe uma maneira de verificar se os arrays do NumPy compartilham os mesmos dados?

Minha impressão é que, no NumPy, dois arrays podem compartilhar a mesma memória. Tome o seguinte exemplo:

import numpy as np
a=np.arange(27)
b=a.reshape((3,3,3))
a[0]=5000
print (b[0,0,0]) #5000

#Some tests:
a.data is b.data #False
a.data == b.data #True

c=np.arange(27)
c[0]=5000
a.data == c.data #True ( Same data, not same memory storage ), False positive

Tão claramenteb não fez uma cópia doa; ele apenas criou alguns novos meta-dados e anexou-o ao mesmo buffer de memória quea está usando. Existe uma maneira de verificar se duas matrizes referenciam o mesmo buffer de memória?

Minha primeira impressão foi usara.data is b.data, mas isso retorna falso. eu posso fazera.data == b.data que retorna True, mas eu não acho que cheques para ter certezaa eb compartilhar o mesmo buffer de memória, apenas que o bloco de memória referenciado pora e aquele referenciado porb tem os mesmos bytes.

questionAnswers(3)

yourAnswerToTheQuestion