REPOST: Re: Efficient storage of floats

Chris Barker chrishbarker at attbi.com
Thu Dec 27 14:10:07 EST 2001


Francois Petitjean wrote:
> 
> I have to read a number of points coordinates (npoints). Different
> structures can be used to store these numbers:

> 2. The coordinates can be stored in an array
> acoords = array.array('f')

This is crying out to be done with Numeric Arrays
(http://sourceforge.net/projects/numpy):

import Numeric:

coords = Numeric.zeros((3,npoints),Numeric.Float)

> Using acoords : x,y,z = acoords[3*kpt],acoords[3*kpt+1],acoords[3*kpt+2]

x,y,z = acoords(n)

The possible n-d arrays of Numeric make this kind of thing MUCH easier,
and you will get the efficient storage you want. Numeric arrays use the
same amont of storage a C array would use for the same type, plus the
overhead of the Array object, which would be negligable compared to the
data for a large array.

Asside for that, you now have a data an object type that supports
effiecent computation, wiht nice easy notation:

transformed_coords = acoords * 5

to multiply all the coordanates by 5, or:

transformed_coords = acoords * (x_scale, y_scale, z_scale)

Etc, etc, etc.

If you are working with a lot of numbers, you are crazy not to use
Numeric.

-Chris





-- 
Christopher Barker,
Ph.D.                                                           
ChrisHBarker at attbi.net                ---           ---           ---
                                     ---@@       -----@@       -----@@
                                   ------@@@     ------@@@     ------@@@
Oil Spill Modeling                ------   @    ------   @   ------   @
Water Resources Engineering       -------      ---------     --------    
Coastal and Fluvial Hydrodynamics --------------------------------------
------------------------------------------------------------------------

========= WAS CANCELLED BY =======:
Path: news.sol.net!spool0-milwwi.newsops.execpc.com!newsfeeds.sol.net!newspump.sol.net!newsfeed.direct.ca!look.ca!nntp.kreonet.re.kr!feeder.kornet.net!news1.kornet.net!ua4canc3ll3r
From: Chris Barker <chrishbarker at attbi.com>
Newsgroups: comp.lang.python
Subject: cmsg cancel <3C2B720F.209C3A04 at attbi.com>
Control: cancel <3C2B720F.209C3A04 at attbi.com>
Date: Mon, 31 Dec 2001 02:36:31 GMT
Organization: A poorly-installed InterNetNews site
Lines: 2
Message-ID: <cancel.3C2B720F.209C3A04 at attbi.com>
NNTP-Posting-Host: 211.57.49.2
X-Trace: news2.kornet.net 1009775672 27193 211.57.49.2 (31 Dec 2001 05:14:32 GMT)
X-Complaints-To: usenet at news2.kornet.net
NNTP-Posting-Date: Mon, 31 Dec 2001 05:14:32 +0000 (UTC)
X-No-Archive: yes
X-Unac4ncel: yes
X-Commentary: I love NewsAgent 1.10 and the Sandblaster Cancel Engine Build 74 (19 March 1999)

This message was cancelled from within Mozilla.



More information about the Python-list mailing list