Subarray: Difference between revisions

Jump to navigation Jump to search
40 bytes added ,  05:52, 9 June 2020
m
Text replacement - " ⊢( *[^∘])" to " ⎕←$1"
Miraheze>Marshall
No edit summary
m (Text replacement - " ⊢( *[^∘])" to " ⎕←$1")
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
:''The term sub-array may also be used to refer to an array [[cell]].''
:''The term sub-array may also be used to refer to an array [[cell]].''


A '''subarray''' (or '''sub-array''') of an array is another array which can be formed by selecting a contiguous section along each [[axis]]. The subarrays of an array are all those that result from [[indexing]] that array by a full set of [[index]] arrays each of which is either a [[scalar]] or a [[vector]] of sequential indices. The term subarray is used loosely in APL and rarely defined directly. Depending on context, scalar indices may be allowed only for [[Axis ordering|leading]] axes or not at all. If scalar indices are not allowed than a subarray shares every [[axis]] with the array that contains it and has equal [[rank]] to it; we might call such subarrays ''equal-rank'' subarrays. Otherwise a subarray has rank less than or equal to its containing array.
A '''subarray''' (or '''sub-array''') of an array is another array which can be formed by selecting a contiguous section along each [[axis]]. The subarrays of an array are all those that result from [[Bracket indexing|indexing]] that array by a full set of [[index]] arrays each of which is either a [[scalar]] or a [[vector]] of sequential indices. The term subarray is used loosely in APL and rarely defined directly. Depending on context, scalar indices may be allowed only for [[Axis ordering|leading]] axes or not at all. If scalar indices are not allowed than a subarray shares every [[axis]] with the array that contains it and has equal [[rank]] to it; we might call such subarrays ''equal-rank'' subarrays. Otherwise a subarray has rank less than or equal to its containing array.


A vector subarray of a [[vector]] is a subvector. In languages outside of the APL family which have only 1-dimensional arrays, "subarray" may have this meaning: for example, the [[wikipedia:maximum subarray problem|maximum subarray problem]] is usually taken to apply to 1-dimensional arrays only. The term "slice" may also be used to refer to a subvector outside of APL.
A vector subarray of a [[vector]] is a subvector. In languages outside of the APL family which have only 1-dimensional arrays, "subarray" may have this meaning: for example, the [[wikipedia:maximum subarray problem|maximum subarray problem]] is usually taken to apply to 1-dimensional arrays only. The term "slice" may also be used to refer to a subvector outside of APL.
Line 7: Line 7:
The [[Find]] (<source lang=apl inline>⍷</source>) function searches for occurrences of the left argument as a subarray of the right argument. For Find, a subarray may have leading axes dropped but not others. We might also say that Find searches for the left argument after extending its [[shape]] with leading 1s, or that it searches for the left argument as a subarray of any equal-[[rank]] [[cell]] of the right argument.
The [[Find]] (<source lang=apl inline>⍷</source>) function searches for occurrences of the left argument as a subarray of the right argument. For Find, a subarray may have leading axes dropped but not others. We might also say that Find searches for the left argument after extending its [[shape]] with leading 1s, or that it searches for the left argument as a subarray of any equal-[[rank]] [[cell]] of the right argument.
<source lang=apl>
<source lang=apl>
       ⊢A ← 5 4⍴⎕A
       ⎕←A ← 5 4⍴⎕A
ABCD
ABCD
EFGH
EFGH
Line 48: Line 48:
[[Reduction]] and the related operators [[Scan]] and [[Windowed Reduction]] reduce along 1-dimensional subarrays of the right argument. The vectors used in a particular reduction can be formed by taking a scalar index along each axis except the reduction axis, and selecting from the reduction axis according to the operator used. For a reduction the entire axis is used while for scans [[prefix]]es are used and windowed reductions take subsections of the length specified by the left argument.
[[Reduction]] and the related operators [[Scan]] and [[Windowed Reduction]] reduce along 1-dimensional subarrays of the right argument. The vectors used in a particular reduction can be formed by taking a scalar index along each axis except the reduction axis, and selecting from the reduction axis according to the operator used. For a reduction the entire axis is used while for scans [[prefix]]es are used and windowed reductions take subsections of the length specified by the left argument.


{{APL programming language}}
{{APL features}}[[Category:Array relationships]]

Navigation menu