Можете ли вы сказать, является ли массив представлением другого? - PullRequest
5 голосов
/ 06 февраля 2012

Отслеживают ли numpy массивы их "статус просмотра"?

import numpy
a = numpy.arange(100)
b = a[0:10]
b[0] = 100
print a[0]
# 100 comes out as it is a view
b is a[0:10]
# False (hmm how to ask?)

Я ищу numpy.isview() или что-то еще.

Я хочу, чтобы при профилировании кода я был уверен, что все делал правильно и получал представления, когда я так думаю.

Ответы [ 2 ]

5 голосов
/ 06 февраля 2012

массив также имеет базовый атрибут:

a = np.arange(10)
print a.base
None

b = a[2:9]
print b.base is a
True

c = b[:2]
print c.base is b
True
print c.base is a
False
3 голосов
/ 06 февраля 2012

ndarray.flags.owndata сообщает вам, владеет ли массив данными.В вашем примере:

In [18]: a.flags.owndata
Out[18]: True

In [19]: b.flags.owndata
Out[19]: False

Это явно не так точно, как вы спрашиваете, но это лучшее, что я знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...