Difference between revisions of "Array Manipulation"

From ZCubes Wiki
Jump to navigation Jump to search
 
(24 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
*[[ Z3 | << Z3 Home ]]
 
*[[ Z3 | << Z3 Home ]]
 
*[[ Z%5E3_Language_Documentation | Z3 Language Documentation]]
 
*[[ Z%5E3_Language_Documentation | Z3 Language Documentation]]
 +
*[[ Z%5E3_Array_Manipulation_Member_Functions | Listing of Z3 Array Manipulation Member Functions]]
 +
*[[ Z%5E3_Map_Reduce | Map Reduce]]
 +
 +
  
  
Line 47: Line 51:
  
 
b=a.chunks(10)
 
b=a.chunks(10)
b.$$(SUM)
+
</br>b.$$(SUM)
  
 
{| class="wikitable"|-
 
{| class="wikitable"|-
Line 72: Line 76:
  
  
*[[ Z3 | << Z3 Home ]]
 
*[[ Z%5E3_Language_Documentation | Z3 Language Documentation]]
 
 
 
A listing of the Array functions are given below:
 
<pre>
 
 
Function name  Parameter
 
{|border="1" cellpadding="5" cellspacing="0"
 
|-
 
! Functions !! 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 ||
 
|-
 
| 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 ||
 
|}
 
  
$
 
$$
 
$$$
 
$$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
 
㪭㭲
 
</pre>
 
  
  
 +
*[[ Z%5E3_Array_Manipulation_Member_Functions | Listing of Z3 Array Manipulation Member Functions]]
 
*[[ Z%5E3_Language_Documentation | Z3 Language Documentation]]
 
*[[ Z%5E3_Language_Documentation | Z3 Language Documentation]]
 
*[[ Z3 | << Z3 Home ]]
 
*[[ Z3 | << Z3 Home ]]

Latest revision as of 09:13, 31 December 2021

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