David Novakovic wrote:
> Thanks for the help, i've learnt a lot and also figured out something
> that does what I want,  i'll paste  an interactive session below:
>
>  x = zeros((4,7))
>  x
> array([[0, 0, 0, 0, 0, 0, 0],
>        [0, 0, 0, 0, 0, 0, 0],
>        [0, 0, 0, 0, 0, 0, 0],
>        [0, 0, 0, 0, 0, 0, 0]])
>  index = arange(min(x.shape[0], x.shape[1]))
>  index2 = copy.deepcopy(index) #deep copy may be overkill
>  for a,b in enumerate(index):
> ...   index2[a] += a
>   
Turns out this is not good at all. I guess I'm still open to suggestions
then :(

Dave
> ...
>  if len(x[:,0]) > len(x[0]):
> ...   x[index2,index] +=1
> ... else:
> ...   x[index,index2] +=1
> ...
>  x
> array([[1, 0, 0, 0, 0, 0, 0],
>        [0, 0, 1, 0, 0, 0, 0],
>        [0, 0, 0, 0, 1, 0, 0],
>        [0, 0, 0, 0, 0, 0, 1]])
>
>
> Thanks for the tips
>
> Dave Novakovic
>
> P.S. subscribed to the list now
>
> Bill Baxter wrote:
>   
>> Forgot to CC you...
>>
>> ---------- Forwarded message ----------
>> From: Bill Baxter <[EMAIL PROTECTED]>
>> Date: Oct 12, 2006 8:58 AM
>> Subject: Re: [Numpy-discussion] incrementing along a diagonal
>> To: Discussion of Numerical Python
>> <numpy-discussion@lists.sourceforge.net>
>>
>>
>> On 10/12/06, David Novakovic <[EMAIL PROTECTED]> wrote:
>>     
>>> Johannes Loehnert wrote:
>>> This is very nice, exactly what i want, but it doesnt work for mxn
>>> matricies:
>>>
>>>       
>>>>>> x = zeros((5,3))
>>>>>> x
>>>>>>             
>>> array([[0, 0, 0],
>>>        [0, 0, 0],
>>>        [0, 0, 0],
>>>        [0, 0, 0],
>>>        [0, 0, 0]])
>>>       
>>>>>> index = arange(min(x.shape[0],x.shape[1]))
>>>>>> x[index,index] += 1
>>>>>> x
>>>>>>             
>>> array([[1, 0, 0],
>>>        [0, 1, 0],
>>>        [0, 0, 1],
>>>        [0, 0, 0],
>>>        [0, 0, 0]])
>>>       
>> Exactly what output are you expecting?  That is the definition of the
>> 'diagonal' for a non-square matrix.  If you're expecting something
>> else then what you want is not the diagonal.
>>
>>     
>>> Just for reference, this is the line of perl i'm trying to port:
>>>
>>>
>>> like:
>>>
>>> for index in diag_iter(matrix,*axes):
>>>     matrix[index] +=1
>>>       
>> That's not going to change the mathematical definition of the diagonal
>> of a non-square matrix.
>>
>>     
>>> PS: If anyone would care to link me to the subscription page for the
>>> mailing list so you dont have to CC me all the time :)
>>>       
>> Check the bottom of this message.
>>
>>     
>>> _______________________________________________
>>> Numpy-discussion mailing list
>>> Numpy-discussion@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/numpy-discussion
>>>
>>>       
>> --bb
>>
>>     
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/numpy-discussion
>
>   


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/numpy-discussion

Reply via email to