[Numpy-discussion] Index array confusion...
Magnus Lie Hetland
magnus at hetland.org
Sun Dec 15 14:10:01 CST 2002
Magnus Lie Hetland <magnus at hetland.org>:
[snip]
> This seems like a bug to me. The assignment ought to swap the tails of
> the sequences, as is the case with lists, but with numeric arrays,
> some weird form of overwriting occurs. I guess this may be an
> optimization (i.e. to avoid making copies), but it is rather
> confusing. What do you think?
Even stranger:
>>> a = zeros([5])
>>> b = ones([5])
>>> p = 2
>>> tail_a = a[p:]
>>> tail_b = b[p:]
>>> a[p:] = tail_b
>>> b[p:] = tail_a
>>> a, b
(array([0, 0, 1, 1, 1]), array([1, 1, 1, 1, 1]))
I suppose this is due to sharing of slices somehow? I.e:
>>> a = ones([5])
>>> b = a[:]
>>> b[2] = 0
>>> a
array([1, 1, 0, 1, 1])
I have to use the copy method here, I guess?
> > Todd
--
Magnus Lie Hetland Practical Python The Anygui Project
http://hetland.org http://ppython.com http://anygui.org
More information about the Numpy-discussion
mailing list