ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> numpy-discussion
numpy-discussion
Re: [Numpy-discussion] equivalent to isempty command in matlab (newbie question)
by Filip Wasilewski other posts by this author
Dec 6 2006 9:10AM messages near this date
[Numpy-discussion] equivalent to isempty command in matlab (newbie question) | Re: [Numpy-discussion] equivalent to isempty command in matlab (newbie question)
On 12/6/06, Giorgio Luciano <giorgio.luciano@[...].it>  wrote:
>  Today  I've also posted a question to scipy groups because I've thought
>  I've found a solution but
> 
>  this work good
> 
>  bar(N, b1[:,0], width, color='r', yerr=binterv)
>   ############
>   s3=find(sig1[:,arange(ini,c)]<=0.001)

Just a few tips before I answer your question.

Is sig1 a global constant? It is a good practice to write constant
names in uppercase. Otherwise consider passing it as a function
argument.

>   b1=b.flatten()
>   #if s3!=[]:

   if s3:
      ...

>   for i3 in arange(len(s3)):

   Although this works, a no-surprise way is to use standard xrange:

   for i3 in xrange(len(s3)): ...

   or enumerate:

   for i3, elem in enumerate(s3): ...

>    text(s3[i3], b1[s3[i3]+ini],'***')
>   s2=find(logical_and(sig1[:,arange(ini,c)]>0.001,sig1[:,arange(ini,c)]<=0.01))

 Boolean operators are also ok, just remember about parentheses and
operators priority:

 (sig1[:,arange(ini,c)]> 0.001) & (sig1[:,arange(ini,c)]<=0.01)

>   for i2 in arange(len(s2)):
>    text(s2[i2], b1[s2[i2]+ini],'**')
>   s1=find(logical_and(sig1[:,arange(ini,c)]>0.01,sig1[:,arange(ini,c)]<=0.05))
>   for i1 in arange(len(s1)):
>    text(s1[i1], b1[s1[i1]+ini],'*')
>   title('Plot of the coefficients of the model')
> 
>  and when i uncomment the ifs3!=[] part it does not...

I think you have just discovered a bug or it's an inconsistency I
didn't know of?

> >> print numpy.array([1,1]) == [], numpy.array([1,1]) != []
False True
> >> print numpy.array([1]) == [], numpy.array([1]) != []
[] []
> >> print numpy.array([]) == [], numpy.array([]) != []
[] []

> >> numpy.__version__
'1.0'


>  so in this case I've solve the problem.. but is there an equivalent for
>  isempty matlab command in numpy ?

Just like for other Python objects:

if ifs3:
   print "not empty"

or check if .size attribute is positive.

cheers,
fw
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@[...].org
http://projects.scipy.org/mailman/listinfo/numpy-discussion
Thread:
Giorgio Luciano
Filip Wasilewski
Robert Kern
Filip Wasilewski
Robert Kern

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved