Module pl.array2d
Operations on two-dimensional arrays.
See The Guide
Dependencies: pl.utils , pl.tablex
Functions
size (t) | return the row and column size. |
column (a, key) | extract a column from the 2D array. |
map (f, a, arg) | map a function over a 2D array |
reduce_rows (f, a) | reduce the rows using a function. |
reduce_cols (f, a) | reduce the columns using a function. |
reduce2 (opc, opr, a) | reduce a 2D array into a scalar, using two operations. |
map2 (f, ad, bd, a, b, arg) | map a function over two arrays. |
product (f, t1, t2) | cartesian product of two 1d arrays. |
flatten (t) | flatten a 2D array. |
reshape (t, nrows, co) | reshape a 2D array. |
swap_rows (t, i1, i2) | swap two rows of an array. |
swap_cols (t, j1, j2) | swap two columns of an array. |
extract_rows (t, ridx) | extract the specified rows. |
extract_cols (t, cidx) | extract the specified columns. |
remove_row (t, i) | remove a row from an array. |
remove_col (t, j) | remove a column from an array. |
parse_range (s) | parse a spreadsheet range. |
range (t, rstr) | get a slice of a 2D array using spreadsheet range notation. |
slice (t, i1, j1, i2, j2) | get a slice of a 2D array. |
set (t, value, i1, j1, i2, j2) | set a specified range of an array to a value. |
write (t, f, fmt, i1, j1, i2, j2) | write a 2D array to a file. |
forall (t, row_op, end_row_op, i1, j1, i2, j2) | perform an operation for all values in a 2D array. |
move (dest, di, dj, src, i1, j1, i2, j2) | move a block from the destination to the source. |
iter (a, indices, i1, j1, i2, j2) | iterate over all elements in a 2D array, with optional indices. |
columns (a) | iterate over all columns. |
new (rows, cols, val) | new array of specified dimensions |
Functions
- size (t)
-
return the row and column size.
Parameters:
t
: a 2d array
Returns:
- number of rows
- number of cols
- column (a, key)
-
extract a column from the 2D array.
Parameters:
a
: 2d arraykey
: an index or key
Returns:
-
1d array
- map (f, a, arg)
-
map a function over a 2D array
Parameters:
f
: a function of at least one argumenta
: 2d arrayarg
: an optional extra argument to be passed to the function.
Returns:
-
2d array
- reduce_rows (f, a)
-
reduce the rows using a function.
Parameters:
f
: a binary functiona
: 2d array
Returns:
-
1d array
see also:
- reduce_cols (f, a)
-
reduce the columns using a function.
Parameters:
f
: a binary functiona
: 2d array
Returns:
-
1d array
see also:
- reduce2 (opc, opr, a)
-
reduce a 2D array into a scalar, using two operations.
Parameters:
opc
: operation to reduce the final resultopr
: operation to reduce the rowsa
: 2D array
- map2 (f, ad, bd, a, b, arg)
-
map a function over two arrays.
They can be both or either 2D arrays
Parameters:
f
: function of at least two argumentsad
: order of first arraybd
: order of second arraya
: 1d or 2d arrayb
: 1d or 2d arrayarg
: optional extra argument to pass to function
Returns:
-
2D array, unless both arrays are 1D
- product (f, t1, t2)
-
cartesian product of two 1d arrays.
Parameters:
f
: a function of 2 argumentst1
: a 1d tablet2
: a 1d table
Usage:
product('..',{1,2},{'a','b'}) == {{'1a','2a'},{'1b','2b'}}
Returns:
-
2d table
- flatten (t)
-
flatten a 2D array.
(this goes over columns first.)
Parameters:
t
: 2d table
Usage:
flatten {{1,2},{3,4},{5,6}} == {1,2,3,4,5,6}
Returns:
-
a 1d table
- reshape (t, nrows, co)
-
reshape a 2D array.
Parameters:
t
: 2d arraynrows
: new number of rowsco
: column-order (Fortran-style) (default false)
Returns:
-
a new 2d array
- swap_rows (t, i1, i2)
-
swap two rows of an array.
Parameters:
t
: a 2d arrayi1
: a row indexi2
: a row index
- swap_cols (t, j1, j2)
-
swap two columns of an array.
Parameters:
t
: a 2d arrayj1
: a column indexj2
: a column index
- extract_rows (t, ridx)
-
extract the specified rows.
Parameters:
t
: 2d arrayridx
: a table of row indices
- extract_cols (t, cidx)
-
extract the specified columns.
Parameters:
t
: 2d arraycidx
: a table of column indices
- remove_row (t, i)
-
remove a row from an array.
Parameters:
t
: a 2d arrayi
: a row index
- remove_col (t, j)
-
remove a column from an array.
Parameters:
t
: a 2d arrayj
: a column index
- parse_range (s)
-
parse a spreadsheet range.
The range can be specified either as ‘A1:B2’ or ‘R1C1:R2C2’;
a special case is a single element (e.g ‘A1’ or ‘R1C1’)
Parameters:
s
: a range.
Returns:
- start col
- start row
- end col
- end row
- range (t, rstr)
-
get a slice of a 2D array using spreadsheet range notation. @see parse_range
Parameters:
t
: a 2D arrayrstr
: range expression
Returns:
-
a slice
see also:
- slice (t, i1, j1, i2, j2)
-
get a slice of a 2D array. Note that if the specified range has
a 1D result, the rank of the result will be 1.
Parameters:
t
: a 2D arrayi1
: start row (default 1)j1
: start col (default 1)i2
: end row (default N)j2
: end col (default M)
Returns:
-
an array, 2D in general but 1D in special cases.
- set (t, value, i1, j1, i2, j2)
-
set a specified range of an array to a value.
Parameters:
t
: a 2D arrayvalue
: the value (may be a function)i1
: start row (default 1)j1
: start col (default 1)i2
: end row (default N)j2
: end col (default M)
see also:
- write (t, f, fmt, i1, j1, i2, j2)
-
write a 2D array to a file.
Parameters:
t
: a 2D arrayf
: a file object (default stdout)fmt
: a format string (default is just to use tostring)i1
: start row (default 1)j1
: start col (default 1)i2
: end row (default N)j2
: end col (default M)
- forall (t, row_op, end_row_op, i1, j1, i2, j2)
-
perform an operation for all values in a 2D array.
Parameters:
t
: 2D arrayrow_op
: function to call on each valueend_row_op
: function to call at end of each rowi1
: start row (default 1)j1
: start col (default 1)i2
: end row (default N)j2
: end col (default M)
- move (dest, di, dj, src, i1, j1, i2, j2)
-
move a block from the destination to the source.
Parameters:
dest
: a 2D arraydi
: start row in destdj
: start col in destsrc
: a 2D arrayi1
: start row (default 1)j1
: start col (default 1)i2
: end row (default N)j2
: end col (default M)
- iter (a, indices, i1, j1, i2, j2)
-
iterate over all elements in a 2D array, with optional indices.
Parameters:
a
: 2D arrayindices
: with indices (default false)i1
: start row (default 1)j1
: start col (default 1)i2
: end row (default N)j2
: end col (default M)
Returns:
-
either value or i,j,value depending on indices
- columns (a)
-
iterate over all columns.
Parameters:
a
: a 2D array
Returns:
-
each column in turn
- new (rows, cols, val)
-
new array of specified dimensions
Parameters:
rows
: number of rowscols
: number of colsval
: initial value; if it’s a function then useval(i,j)
Returns:
-
new 2d array