Procs
-
Returns true if item is in the input Tensor t or false if not found. This is a shortcut for find(t, item) >= 0.
This allows the in and notin operators, i.e.: t.contains(item) is the same as item in a.
Examples:
Source Editvar t = [1, 3, 5].toTensor assert t.contains(5) assert 3 in t assert 99 notin t
proc intersection[T](t1, t2: Tensor[T]): Tensor[T]
-
Return the "intersection" of 2 Tensors as an unsorted rank-1 Tensor
Inputs:
- t1, t2: Input Tensors.
Result:
- An unsorted rank-1 Tensor containing the intersection of the input Tensors.
Note:
- The equivalent numpy function is called intersect1d, while the equivalent Matlab function is called intersect. However, both of those functions always sort the output. To replicate the same behavior, simply apply sort to the output of this function.
Example:
Source Editlet t1 = arange(0, 5) let t2 = arange(3, 8) echo intersection(t1, t2) # Tensor[system.int] of shape "[3]" on backend "Cpu" # 4 3
-
Return the (symmetric or non symmetric) "difference" between 2 Tensors as an unsorted rank-1 Tensor
By default (i.e. when symmetric is false) return all the elements in t1 that are not found in t2.
If symmetric is true, the "symmetric" difference of the Tensors is returned instead, i.e. the elements which are either not in t1 or not in t2.
Inputs:
- t1, t2: Input Tensors.
- symmetric: Whether to return a symmetric or non symmetric difference. Defaults to false.
Result:
- An unsorted rank-1 Tensor containing the selected "difference" between the input Tensors.
Note:
- The equivalent numpy function is called setdiff1d, while the equivalent Matlab function is called setdiff. However, both of those functions always sort the output. To replicate the same behavior, simply apply sort to the output of this function.
Examples:
Source Editlet t1 = arange(0, 5) let t2 = arange(3, 8) echo setDiff(t1, t2) # Tensor[system.int] of shape "[3]" on backend "Cpu" # 2 1 0 echo setDiff(t1, t2, symmetric = true) # Tensor[system.int] of shape "[6]" on backend "Cpu" # 5 2 6 1 7 0
-
Return the unsorted "union" of two Tensors as a rank-1 Tensor
Returns the unique, unsorted Tensor of values that are found in either of the two input Tensors.
Inputs:
- t1, t2: Input Tensors.
Result:
- A rank-1 Tensor containing the (unsorted) union of the two input Tensors.
Notes:
- The equivalent numpy function is called union1d, while the equivalent Matlab function is called union. However, both of those functions always sort the output. To replicate the same behavior, simply apply sort to the output of this function.
Example:
Source Editlet t1 = [3, 1, 3, 2, 1, 0].toTensor let t2 = [4, 2, 2, 3].toTensor echo union(t1, t2) # Tensor[system.int] of shape "[5]" on backend "Cpu" # 3 1 2 0 4
-
Return a new Tensor with the unique elements of the input Tensor in the order they first appear
Note that this is the "unsorted" version of this procedure which returns the unique values in the order in which they first appear on the input. Do not get confused by the isSorted argument which is not used to sort the output, but to make the algorithm more efficient when the input tensor is already sorted.
There is another version of this procedure which gets an order argument that let's you sort the output (in ascending or descending order).
Inputs:
- t: The input Tensor
- isSorted: Set this to true if the input tensor is already sorted, in order to use a more efficient algorithm for finding the unique of the input Tensor. Be careful however when using this option, since if the input tensor is not really sorted, the output will be wrong.
Result:
- A new Tensor with the unique elements of the input Tensor in the order in which they first appear on the input Tensor.
Examples:
Source Editlet dup = [1, 3, 2, 4, 1, 8, 2, 1, 4].toTensor assert dup.unique == [1, 3, 2, 4, 8].toTensor # Use `isSorted = true` only if the input tensor is already sorted assert dup.sorted.unique(isSorted = true) == [1, 3, 2, 4, 8].toTensor
-
Return a new sorted Tensor with the unique elements of the input Tensor
Note that this is the "sorted" version of this procedure. There is another version which doesn't get a sort argument that returns the unique elements int he order in which they first appear ont he input.
Inputs:
- t: The input Tensor
- order: The order in which elements are sorted (SortOrder.Ascending or SortOrder.Descending)
Result:
- A new Tensor with the unique elements of the input Tensor sorted in the specified order.
Examples:
Source Editlet dup = [1, 3, 2, 4, 1, 8, 2, 1, 4].toTensor unique_ascending_sort = dup.unique(order = SortOrder.Ascending) unique_descending_sort = dup.unique(order = SortOrder.Descending) assert unique_ascending_sort == [1, 2, 3, 4, 8].toTensor assert unique_descending_sort == [8, 4, 3, 2, 1].toTensor