[Numpy-discussion] What is diagonal for nd>2?
Sasha
ndarray at mac.com
Thu Apr 6 12:42:17 CDT 2006
It looks like the definition of the diagonal changed somewhere between
Numeric 24.0 and numpy:
In Numeric:
>>> x = Numeric.arange(2*4*4)
>>> x = Numeric.reshape(x, (2, 4, 4))
>>> x
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]],
[[16, 17, 18, 19],
[20, 21, 22, 23],
[24, 25, 26, 27],
[28, 29, 30, 31]]])
>>> Numeric.diagonal(x)
array([[ 0, 5, 10, 15],
[16, 21, 26, 31]])
But in numpy:
>>> import numpy as Numeric
>>> x = Numeric.arange(2*4*4)
>>> x = Numeric.reshape(x, (2, 4, 4))
>>> Numeric.diagonal(x)
array([[ 0, 20],
[ 1, 21],
[ 2, 22],
[ 3, 23]])
The old logic seems to be clear: x is a pair of matrices and diagonal
returns a pair of diagonals, but the new logic seems unclear: the disagonal
returns the first rows of the two matrices transposed.
Does anyone know when this change was introduced and why?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20060406/484624d2/attachment.html
More information about the Numpy-discussion
mailing list