How to add columns to python arrays

Michael Spencer mahs at telcopartners.com
Wed May 17 15:20:00 EDT 2006


Terry Reedy wrote:
> "CC" <chuangwoo at gmail.com> wrote in message 
> news:1147882432.166728.207820 at j55g2000cwa.googlegroups.com...
>> I wanna compile a 6000x1000 array with python. The array starts from
>> 'empty', each time I get a 6000 length list, I wanna add it to the
>> exist array as a column vector. Is there any function to do so?
>>
>> Or, I can add the list as a rows, if this is easier, and transpose the
>> whole array after all the rows are setup.
> 
> Python does not come with a 2D array type either as a builtin type or as a 
> standard library module.  You can only simulate one with a sequence of 
> sequences (list of lists, for instance).  You could initialize as follows:
> 
> aray = []
> for l6000 in source(): aray.append(l6000)
> 
> While this will print as a list of rows, you are free to think of it as a 
> list of columns.
> 
> That said, I suspect you should use the 3rd party NumPy package which 
> defines multiple-dimensional arrays of several base types.
> 
> Terry Jan Reedy
> 
> 
> 
If you're just looking for a multi-dimensional array type, and don't need 
maximum speed or the vast range of array-processing that numpy offers, then 
*pyarray* provides a pure-python single module solution.

the latest pyarray is available with tests and documentation at:
http://svn.brownspencer.com/pyarray/trunk/

Introduction
============
pyarray is a pure-Python implementation of a multi-dimensional array type.

pyarray.ListView and pyarray.ArrayView offer a substantial subset of
numpy.ArrayType functionality, by wrapping standard python 'list' and
'array.array' respectively.

Key features include:
     * Views: all subscripting operations apart from individual cell access
       access return views to existing 'live' data
     * Extended Indexing: slicing, arbitrary 'takes', index arrays etc...
     * Unlimited re-shaping: while still addressing one data-source
     * Elementwise binary operations: all basic arithmetic and comparison
       operations
     * Data broadcasting: allows assignment and binary operations between
       views of different shapes
     * Friendly __repr__: work safely with big arrays at the interactive prompt

Regards
Michael





More information about the Python-list mailing list