Array Manipulation
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 | Parameter |
$C | |
$CELLS | |
$R | |
$X | |
$_ | |
$d | |
$diag | |
$dth | |
$x | |
X$ | |
ZJSON | |
__$ | |
ac | |
accumulate | Total |
accumulatewith | CumulateFunction,CurrentResult |
across | OtherArray, Function |
add | Thing |
addcolumn | NumberOfColumns |
addrow | NumberOfRows |
addsequence | InFront,StartFrom,OptionalSequenceArray |
adjoint | Array |
aggregate | Columns,Function, Params |
any | Count |
appendfunction | Function |
ar | |
async | Iterator, CallBack |
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 | |
㪭㭲 |