[Numpy-discussion] Memory errors
Vikalpa Jetly
vjetly at i3.com
Fri Oct 6 08:30:51 CDT 2006
Thanks Travis and Robert. I am just getting my feet wet in numpy. Both
approaches i.e:
b = zeros_like(a)
b[a>200] = 1
or
b = (a > 200).astype(numpy.uint8)
avoid the memory error. Related question is that I need to test for multiple
conditions on the same array and set values to 1 or 0. I see that statements
like b[a>200 or a<50] = 1 do not work. So is the way to do this simply to
run a separate statement in the form b[condition]= 1 for each test?
Also since my output has to be a binary array, can the new array be defined
as binary type or nibble, potentially reducing memory overhead?
Thanks.
Vikalpa
-----Original Message-----
From: numpy-discussion-bounces at lists.sourceforge.net
[mailto:numpy-discussion-bounces at lists.sourceforge.net] On Behalf Of Travis
Oliphant
Sent: Thursday, October 05, 2006 5:44 PM
To: Discussion of Numerical Python
Subject: Re: [Numpy-discussion] Memory errors
>
The MemoryError is a direct result when system malloc fails. Rather
than use where with two scalars (you're resulting array will be int32
and therefore 4-times larger).
Use
b = zeros_like(a)
b[a>200] = 1
which will consume less memory.
-Travis
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/numpy-discussion
More information about the Numpy-discussion
mailing list