Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #17239
| Path | csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <d@davea.name> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.001 |
| X-Spam-Evidence | '*H*': 1.00; '*S*': 0.00; 'python': 0.08; "(i'm": 0.09; 'append': 0.09; 'either)': 0.09; 'initialized': 0.09; 'okay': 0.09; 'rows': 0.09; 'tia,': 0.09; 'subject:file': 0.12; '"r")': 0.16; "'r')": 0.16; 'arrays,': 0.16; 'arrays.': 0.16; 'columns': 0.16; 'd1,': 0.16; 'd2,': 0.16; 'data2': 0.16; 'file.close()': 0.16; 'install.': 0.16; 'iterator': 0.16; 'numpy': 0.16; 'slicker': 0.16; 'subject:array': 0.16; 'succinct': 0.16; "that'll": 0.16; 'cc:addr:python-list': 0.16; 'wrote:': 0.18; '2.2': 0.18; 'file,': 0.19; 'cc:no real name:2**0': 0.20; 'trying': 0.21; 'subject:data': 0.21; "doesn't": 0.22; 'header:In- Reply-To:1': 0.22; '0.1': 0.23; 'items.': 0.23; 'replacing': 0.23; 'somehow': 0.23; 'way?': 0.23; 'cc:2**0': 0.24; 'code': 0.25; 'guess': 0.26; "i'm": 0.26; 'tried': 0.27; '(and': 0.28; 'mine': 0.28; 'lists': 0.28; 'partial': 0.29; 'problem': 0.29; 'print': 0.29; 'cc:addr:python.org': 0.29; 'error': 0.29; 'pm,': 0.29; 'lines': 0.30; 'array': 0.30; 'seem': 0.30; 'float.': 0.30; 'option:': 0.30; "i've": 0.31; "didn't": 0.31; 'actual': 0.32; "isn't": 0.33; "won't": 0.33; 'header:User-Agent:1': 0.33; 'there': 0.33; 'decide': 0.33; 'done': 0.34; 'probably': 0.34; 'eric': 0.34; 'curious': 0.34; 'elegant': 0.34; 'something': 0.35; 'file': 0.36; '...': 0.36; 'uses': 0.36; 'but': 0.37; 'list,': 0.37; 'received:192': 0.37; "there's": 0.37; 'think': 0.37; 'could': 0.37; 'some': 0.38; "i'd": 0.39; 'data,': 0.39; "it's": 0.40; 'received:192.168': 0.40; 'more': 0.61; 'your': 0.61; 'you.': 0.63; 'legal': 0.70; 'header:Reply-To:1': 0.71; 'reply- to:no real name:2**0': 0.72; 'to:addr:yahoo.com': 0.83; '05:20': 0.84; '10.1': 0.84; 'so:': 0.84; '3.3': 0.91 |
| Date | Wed, 14 Dec 2011 17:59:25 -0500 |
| From | Dave Angel <d@davea.name> |
| User-Agent | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110922 Thunderbird/3.1.15 |
| MIME-Version | 1.0 |
| To | Eric <einazaki668@yahoo.com> |
| Subject | Re: file data => array(s) |
| References | <81b5d566-3a82-4a8e-ac8a-98b8dd92f6bc@4g2000yqu.googlegroups.com> |
| In-Reply-To | <81b5d566-3a82-4a8e-ac8a-98b8dd92f6bc@4g2000yqu.googlegroups.com> |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Provags-ID | V02:K0:u+bMnKd5IeabM7saz2Mfeou+VPOEuKh/e8BBK8B3lCc /CWVftXWqWdxtLRE0dH8oj8KBtwhA5e7jcVbLWZye4HLsNiF72 m5zmOLy8Fa78DgU4AEHIzslv7sMiFRqhWP/MJpyHt6fEju6AIy bUeZmhkgoaqj3E/nhAlrmcuSuK9SsIRkR2dD2dm9qH/hwepWm9 BdSsMOAzfKpMeoQjSLB4abCBnFkneTEKxG8Gl+3DS7eE6UqmUM Jl/omNLu88M9qaZavVAd8vRnkxGKubrvlann2GnOT1eGTSFgOp dq6Z1F17ryfLHpbc/4eSbXYiwi+fA4dwWnW8CCUmEuT7UUsOUm 3GZvKkCEvqQo0lrG3GXM= |
| Cc | python-list@python.org |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.12 |
| Precedence | list |
| Reply-To | d@davea.name |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.3658.1323903585.27778.python-list@python.org> (permalink) |
| Lines | 73 |
| NNTP-Posting-Host | 2001:888:2000:d::a6 |
| X-Trace | 1323903585 news.xs4all.nl 6861 [2001:888:2000:d::a6]:46345 |
| X-Complaints-To | abuse@xs4all.nl |
| Xref | x330-a1.tempe.blueboxinc.net comp.lang.python:17239 |
Show key headers only | View raw
On 12/14/2011 05:20 PM, Eric wrote: > I'm trying to read some file data into a set of arrays. The file data > is just four columns of numbers, like so: > > 1.2 2.2 3.3 0.5 > 0.1 0.2 1.0 10.1 > ... and so on > > I'd like to read this into four arrays, one array for each column. > Alternatively, I guess something like this is okay too: > > [[1.2, 2.2, 3.3, 0.5], [0.1, 0.2, 1.0, 10.1], ... and so on] > > I came up with the following for the four array option: > > file = open(fileName, 'r') > for line in file.readlines(): The readlines() call is a waste of time/space. file is already an iterator that'll return lines for you. > d1, e1, d2, e2 = map(float, line.split()) > data1.append(d1) # where data1, err1, data2, err2 are init-ed > as empty lists > err1.append(e1) > data2.append(d2) > err2.append(e2) > file.close() > > But somehow it doesn't seem very python-esque (I'm thinking there's a > more elegant and succinct way to do it in python). I've also tried > replacing the above "map" line with: > > d = d + map(float, line.split()) # where d is initialized as d > = [] > > But all I get is one long flat list, not what I want. > > So is the map and append method the best I can do or is there a > slicker way? > > One more thing, no numpy. Nothing against numpy but I'm curious to > see what can be done with just the box stock python install. > > TIA, > eric When I see a problem like this, I turn to zip(). It's got some powerful uses when rows and columns need inverting. I didn't try it on an actual file, but the following works: linedata = [[1.2, 2.2, 3.3, 0.5], [0.1, 0.2, 1.0, 10.1] ] data, err1, data2, err2 = zip(*linedata) print data print err1 print data2 print err2 So you could try (untested) file = open(filename, "r") linedata = [ map(float, line) for line in file] data, err1, data2, err2 = zip(*linedata) file.close() Note that your code won't work (and mine probably won't either) if one of the lines has 3 or 5 items. Or if one of the numbers isn't legal format for a float. So you need to think about error checking, or decide whether a partial result is important. -- DaveA
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
file data => array(s) Eric <einazaki668@yahoo.com> - 2011-12-14 14:20 -0800
Re: file data => array(s) Dave Angel <d@davea.name> - 2011-12-14 17:59 -0500
Re: file data => array(s) Eric <einazaki668@yahoo.com> - 2011-12-14 15:25 -0800
Re: file data => array(s) Eric <einazaki668@yahoo.com> - 2011-12-15 10:37 -0800
Re: file data => array(s) MRAB <python@mrabarnett.plus.com> - 2011-12-15 19:34 +0000
Re: file data => array(s) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-12-14 23:27 +0000
Re: file data => array(s) Eric <einazaki668@yahoo.com> - 2011-12-15 10:51 -0800
csiph-web