Shape: Difference between revisions
Jump to navigation
Jump to search
Miraheze>Adám Brudzewsky No edit summary |
Miraheze>Marshall No edit summary |
||
Line 1: | Line 1: | ||
The shape of an array is a vector of lengths | The shape of an array is a [[vector]] of lengths of the array along each [[axis]]. The Shape function <code class="apl">⍴</code> is a [[monadic function]] which returns the shape of its argument array. The [[dyadic function]] [[Reshape]] (<code class="apl">⍴</code>) produces an array of the shape specified by its left argument. | ||
< | |||
An array's shape may be any vector of nonnegative integers with length less than or equal to the [[maximum rank]]. The length of an array's shape is the array's [[rank]], and the product of the shape is its [[bound]]. If the shape is [[Empty array]] then the array is a [[scalar]]. | |||
An array's shape, along with the [[index origin]], determine the possible values which can be used as an [[index]] into the array. A complete index is a vector of integers with the same length as the shape. When the index origin is subtracted from the index each element must be at least 0 and less than the corresponding element of the shape. In languages with [[negative indexing]] it may be greater than or equal to the negative of the shape rather than 0. | |||
== Examples == | |||
<source class="apl"> | |||
(⍬≡⍴)¨1 'A' ⍝ The shape of a scalar is the empty numeric vector ⍬ | (⍬≡⍴)¨1 'A' ⍝ The shape of a scalar is the empty numeric vector ⍬ | ||
1 1 | 1 1 | ||
Line 9: | Line 16: | ||
⍴'ABC'∘.,1 2 3 4∘.×0J1 1J2 ⍝ Two consecutive outer products result in a cuboid | ⍴'ABC'∘.,1 2 3 4∘.×0J1 1J2 ⍝ Two consecutive outer products result in a cuboid | ||
3 4 2 | 3 4 2 | ||
</ | </source> | ||
{{APL programming language}} | {{APL programming language}} |