number of element in array/matrix

Tommy Grav tgrav at mac.com
Fri Jan 11 22:35:55 CET 2008


On Jan 11, 2008, at 11:09 AM, m.s.mould at durham.ac.uk wrote:

>
> Hi,
> I have what I suspect to be a fairly simple problem while using  
> python Numeric.
> I am attempting to count the number of times that an element 'b'  
> occurs in
> numeric array 'a'. I tried unsuccessfully to find a more efficient  
> function to
> do this for me such as that offered when using a list, but couldn't  
> seem to find
> anything for Numeric arrays. However, I suspect that my loop is not  
> the most
> efficient way to achieve this.
>
> def countel(a, b): #counts the number of times value 'b' is found  
> in array 'a'
>     i=0
>     count=0
>     while (i<len(a)):
>         j=0
>         while (j<len(a[0])):
>             if (a[i][j]==b):
>                 count=count+1
>             else:
>                 pass
>             j=j+1
>         i=i+1
>     return count
>
> Any help or advice would be greatly appreciated,
> Matt

something like this?

 >>> import numpy as n
 >>> a = n.matrix([[1,2,3,4,1],[2,3,4,1,2],[3,4,1,2,3]],"float")
 >>> a
matrix([[ 1.,  2.,  3.,  4.,  1.],
         [ 2.,  3.,  4.,  1.,  2.],
         [ 3.,  4.,  1.,  2.,  3.]])
 >>> k = n.where(a==1,1,0)
 >>> k
matrix([[1, 0, 0, 0, 1],
         [0, 0, 0, 1, 0],
         [0, 0, 1, 0, 0]])
 >>> k.sum()
4
 >>>

Cheers
   Tommy



More information about the Python-list mailing list