[Numpy-discussion] is ndarray.base the closest base or the ultimate base?
Pauli Virtanen
pav+sp at iki.fi
Mon Sep 21 06:11:43 EDT 2009
Mon, 21 Sep 2009 10:51:52 +0100, Citi, Luca wrote:
> Thanks for your quick answer.
>
> Is there a reason for that?
> Am I wrong or it only makes life harder, such as:
>
> while (PyArray_Check(base) && !PyArray_CHKFLAGS(base, NPY_OWNDATA)) {
> base = PyArray_BASE(base);
> }
>
> plus the possible error you underlined, plus the fact that this keeps a
> chain of zombies alive without reason.
>
> Are there cases where the current behaviour is useful?
I don't see real merits in the current behavior over doing the chain up-
walk on view creation. I don't know if anything in view creation requires
that the immediate base is alive afterwards, but that seems unlikely, so
I believe there's no reason not to make this change.
Some (bad) code might be broken if this was changed, for example
>>> y = x[::-1]
>>> y.base is x
but in practice this is probably negligible.
--
Pauli Virtanen
More information about the NumPy-Discussion
mailing list