Duplicate entries in a matrix
Robert Kern
robert.kern at gmail.com
Thu Jan 19 13:17:04 EST 2006
Chris Lasher wrote:
> Hello Pythonistas!
> I'm looking for a way to duplicate entries in a symmetrical matrix
> that's composed of genetic distances. For example, suppose I have a
> matrix like the following:
>
> A B C
> A 0.000000 0.500000 1.000000
> B 0.500000 0.000000 0.500000
> C 1.000000 0.500000 0.000000
>
> Say I want to duplicate entry B; the resulting matrix would look like:
>
> A B B C
> A 0.000000 0.500000 0.500000 1.000000
> B 0.500000 0.000000 0.000000 0.500000
> B 0.500000 0.000000 0.000000 0.500000
> C 1.000000 0.500000 0.500000 0.000000
In [1]: from numpy import *
In [2]: A = array([[0.0, 0.5, 1.0],
...: [0.5, 0.0, 0.5],
...: [1.0, 0.5, 0.0]])
In [3]: B = repeat(A, [1,2,1])
In [4]: B
Out[4]:
array([[ 0. , 0.5, 1. ],
[ 0.5, 0. , 0.5],
[ 0.5, 0. , 0.5],
[ 1. , 0.5, 0. ]])
In [5]: C = repeat(B, [1,2,1], axis=-1)
In [6]: C
Out[6]:
array([[ 0. , 0.5, 0.5, 1. ],
[ 0.5, 0. , 0. , 0.5],
[ 0.5, 0. , 0. , 0.5],
[ 1. , 0.5, 0.5, 0. ]])
--
Robert Kern
robert.kern at gmail.com
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the Python-list
mailing list