Introduction to Array Manipulation
Arrays/Sets/Matrices are fundamental data structures in z^3. Manipulation of such data structures are often done using custom code in most languages. However, z^3 offers a ton of Array member functions that make it a breeze to handle and manipulate such data structures.
For example, take .chunks().
a=1..100;
This creates a list of 100 numbers. Now, let us make them into chunks of 10 each.
a.chunks(10)
gives
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |
71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |
81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 |
91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |
Simple, isn't it?
The result gives a 10x10 matrix filled with the sequence of numbers from 1 to 100.
Let us say we want to calculate the sum of each row in this 10x10 matrix. The $$ row wise mapping function comes to the rescue.
b=a.chunks(10) b.$$(SUM)
55 |
155 |
255 |
355 |
455 |
555 |
655 |
755 |
855 |
955 |
ARRAY FUNCTIONS
A listing of the Array functions are given below:
Function name Parameter
Function Name | Parameters |
---|---|
$ | |
$$ | |
$$$ | |
$$F | |
$A | |
$C | |
$CELLS | |
$R | |
$X | |
$_ | |
$d | |
$diag | |
$dth | |
$x | |
X$ | |
ZJSON | |
__$ | |
ac | |
accumulate | |
accumulatewith | |
across | |
add | |
addcolumn | |
addrow | |
addsequence | |
adjoint | |
aggregate | |
any | |
appendfunction | |
ar | |
async | |
atindex | |
atnode | |
backward | |
bindcolumn | |
branch | |
branchvalues | |
c | |
calci | |
car | |
cartesianproduct | |
cdr | |
cell | |
cells | |
checktype | |
chunks | |
ci | |
clean | |
clear | |
clearcopy | |
clearrepeats | |
clone | |
colconcat | |
colcount | |
collect | |
collectasvector | |
collectwhile | |
collectwhileasvector | |
column | |
columnconcat | |
columns | |
compare | |
concatall | |
converge | |
copy | |
core | |
count | |
crosstab | |
cube | |
cumcolumn | |
cumcolumns | |
cumcolumnswith | |
cumcolumnwith | |
cumrow | |
cumrows | |
cumrowswith | |
cumrowwith | |
cumulate | |
data | |
dc | |
deal | |
deepcopy | |
deletecolumn | |
deleterow | |
det | |
determinant | |
dim | |
div | |
divide | |
dr | |
drop | |
dropwhile | |
dropwhileasvector | |
eighteenth | |
eighth | |
eleventh | |
equal | |
equalvalues | |
eval | |
except | |
exec | |
explode | |
extract | |
few | |
fifteenth | |
fifth | |
fillwith | |
filtermatches | |
filteroncolumn | |
filteroncondition | |
filteronrow | |
findcellref | |
first | |
firstelement | |
firsthalf | |
fixat | |
fjoin | |
flatten | |
flip | |
flipparts | |
fold | |
foldl | |
foldr | |
forward | |
fourteenth | |
fourth | |
fourths | |
funcjoin | |
gettype | |
graph | |
graphin | |
half | |
halves | |
hderef | |
head | |
headings | |
hindex | |
hundredth | |
i | |
ic | |
ids | |
implode | |
inc | |
include | |
indices | |
injoin | |
insert | |
insertcolumn | |
insertrow | |
inverse | |
ir | |
is | |
is1d | |
is2d | |
isFalse | |
isTrue | |
islikelytype | |
isnotnull | |
isnull | |
istype | |
j | |
joincolumnswith | |
joinrowswith | |
joinwith | |
jq | |
keep | |
last | |
lastelement | |
list | |
lookup | |
make | |
make1to2d | |
makecore | |
makekeyarray | |
maplist | |
mapper | |
maprow | |
mask | |
match | |
matchcolumn | |
matchindex | |
matchrow | |
matchvalue | |
merge | |
mergecolumns | |
mergeio | |
mergerows | |
mid | |
millionth | |
multiply | |
nicejoin | |
nineteenth | |
nineth | |
nodeindex | |
notinclude | |
notwithinlimits | |
nth | |
ntimes | |
nullifyobjects | |
numbers | |
o | |
objects | |
of | |
otherthan | |
pack | |
pad | |
pair | |
pairmatch | |
partitiononcondition | |
parts | |
pastefolds | |
pick | |
pieces | |
pip | |
pipall | |
pipallwithslice | |
plot | |
prefix | |
primitives | |
printf | |
r | |
rand | |
random | |
remove | |
removeByVal | |
removeindices | |
removewith | |
repeatntimes | |
replace | |
replicate | |
rest | |
result | |
reverselevel | |
reversepip | |
reversesort | |
ri | |
rotate | |
rotatecolumns | |
rotaterows | |
row | |
rowconcat | |
rowcount | |
rowlengths | |
rowpush | |
rows | |
rslice | |
second | |
secondhalf | |
seq | |
set | |
setHeadings | |
setaxis | |
setcolumn | |
setrow | |
setunit | |
seventeenth | |
seventh | |
shiftlevel | |
shuffle | |
sixteenth | |
sixth | |
size | |
size2d | |
slices | |
slides | |
sortrecursively | |
sortwith | |
specialprint | |
spliteach | |
splitwhile | |
splitwhileasvector | |
stringlist | |
subtract | |
suchthat | |
suchthatasvector | |
suffix | |
t | |
table | |
tablelookup | |
tail | |
takewhile | |
takewhileasvector | |
tenth | |
third | |
thirds | |
thirteenth | |
thousandth | |
tofunctions | |
toobjectformat | |
totree | |
transpose | |
truefalse | |
twelfth | |
twentieth | |
twod | |
type | |
uncrosstab | |
unimplode | |
unimplodeleaf | |
unitsof | |
unwrapleaf | |
unzip | |
value | |
where | |
withinlimits | |
withouttail | |
x$ | |
xy | |
xypanel | |
z3 | |
zero | |
zip | |
zoompip |
$ $$ $$$ $$F $A $C $CELLS $R $X $_ $d $diag $dth $x X$ ZJSON __$ ac accumulate accumulatewith across add addcolumn addrow addsequence adjoint aggregate any appendfunction ar async atindex atnode backward bindcolumn branch branchvalues c calci car cartesianproduct cdr cell cells checktype chunks ci clean clear clearcopy clearrepeats clone colconcat colcount collect collectasvector collectwhile collectwhileasvector column columnconcat columns compare concatall converge copy core count crosstab cube cumcolumn cumcolumns cumcolumnswith cumcolumnwith cumrow cumrows cumrowswith cumrowwith cumulate data dc deal deepcopy deletecolumn deleterow det determinant dim div divide dr drop dropwhile dropwhileasvector eighteenth eighth eleventh equal equalvalues eval except exec explode extract few fifteenth fifth fillwith filtermatches filteroncolumn filteroncondition filteronrow findcellref first firstelement firsthalf fixat fjoin flatten flip flipparts fold foldl foldr forward fourteenth fourth fourths funcjoin gettype graph graphin half halves hderef head headings hindex hundredth i ic ids implode inc include indices injoin insert insertcolumn insertrow inverse ir is is1d is2d isFalse isTrue islikelytype isnotnull isnull istype j joincolumnswith joinrowswith joinwith jq keep last lastelement list lookup make make1to2d makecore makekeyarray maplist mapper maprow mask match matchcolumn matchindex matchrow matchvalue merge mergecolumns mergeio mergerows mid millionth multiply nicejoin nineteenth nineth nodeindex notinclude notwithinlimits nth ntimes nullifyobjects numbers o objects of otherthan pack pad pair pairmatch partitiononcondition parts pastefolds pick pieces pip pipall pipallwithslice plot prefix primitives print printf r rand random remove removeByVal removeindices removewith repeatntimes replace replicate rest result reverselevel reversepip reversesort ri rotate rotatecolumns rotaterows row rowconcat rowcount rowlengths rowpush rows rslice second secondhalf seq set setHeadings setaxis setcolumn setrow setunit seventeenth seventh shiftlevel shuffle sixteenth sixth size size2d slices slides sortrecursively sortwith specialprint spliteach splitwhile splitwhileasvector stringlist subtract suchthat suchthatasvector suffix t table tablelookup tail takewhile takewhileasvector tenth third thirds thirteenth thousandth tofunctions toobjectformat totree transpose truefalse twelfth twentieth twod type uncrosstab unimplode unimplodeleaf unitsof unwrapleaf unzip value where withinlimits withouttail x$ xy xypanel z3 zero zip zoompip 㪭㭲