[SciPy-user] Transforming 1-d array to 2-d array
Dave
novin01 at gmail.com
Mon Feb 26 06:15:43 EST 2007
Rich Shepard <rshepard <at> appl-ecosys.com> writes:
>
> On Sun, 25 Feb 2007, Rich Shepard wrote:
>
> > It appears that the eye() function is the tool, but when I try
> >
> > foo = eye(barEco,8,8,1)
> > print foo
>
> I've also tried triu() and mat(), but neither prints the results I need.
>
> Rich
>
eye simply creates an array with ones on the diagonal. To solve this problem I
would create a zero array of the correct size and then index into the array.
#Define array size
N = 8
#Define the data to put in the upper-diagonal part of the array
myData = rand(N*(N-1)/2)
#Create an index to the upper-diagonal part
idx = triu(ones([8,8])-eye(8)).nonzero()
#Instantiate a zero array and populate the upper-triangular part with myData
A = zeros([N,N],dtype=float)
A[idx] = myData
#Place ones on the diagonal
A += eye(N)
More information about the SciPy-User
mailing list