- tensorstore.DimExpression.transpose[self, target: DimSelectionLike] DimExpression
Transposes the selected dimensions to the specified target indices.
A dimension range may be specified to reverse the order of all dimensions:
>>> transform = ts.IndexTransform(input_shape=[2, 3, 4], ... input_labels=["x", "y", "z"]) >>> transform[ts.d[:].transpose[::-1]] Rank 3 -> 3 index space transform: Input domain: 0: [0, 4) "z" 1: [0, 3) "y" 2: [0, 2) "x" Output index maps: out[0] = 0 + 1 * in[2] out[1] = 0 + 1 * in[1] out[2] = 0 + 1 * in[0]
Dimensions not in the selection retain their relative order and fill in the dimension indices not in
target
:>>> transform = ts.IndexTransform(input_shape=[2, 3, 4], ... input_labels=["x", "y", "z"]) >>> transform[ts.d['x', 'z'].transpose[0, 1]] Rank 3 -> 3 index space transform: Input domain: 0: [0, 2) "x" 1: [0, 4) "z" 2: [0, 3) "y" Output index maps: out[0] = 0 + 1 * in[0] out[1] = 0 + 1 * in[2] out[2] = 0 + 1 * in[1]
A single non-negative
target
index may be specified to reorder all of the selected dimensions to start at the specified index:>>> transform = ts.IndexTransform(input_shape=[2, 3, 4, 5], ... input_labels=["a", "b", "c", "d"]) >>> transform[ts.d['a', 'd'].transpose[1]] Rank 4 -> 4 index space transform: Input domain: 0: [0, 3) "b" 1: [0, 2) "a" 2: [0, 5) "d" 3: [0, 4) "c" Output index maps: out[0] = 0 + 1 * in[1] out[1] = 0 + 1 * in[0] out[2] = 0 + 1 * in[3] out[3] = 0 + 1 * in[2]
A single negative
target
index may be specified to order all of the selected dimensions to end at the specified index from end:>>> transform = ts.IndexTransform(input_shape=[2, 3, 4, 5], ... input_labels=["a", "b", "c", "d"]) >>> transform[ts.d['a', 'd'].transpose[-1]] Rank 4 -> 4 index space transform: Input domain: 0: [0, 3) "b" 1: [0, 4) "c" 2: [0, 2) "a" 3: [0, 5) "d" Output index maps: out[0] = 0 + 1 * in[2] out[1] = 0 + 1 * in[0] out[2] = 0 + 1 * in[1] out[3] = 0 + 1 * in[3]
- Parameters:¶
- target: DimSelectionLike¶
Target dimension indices for the selected dimensions. All dimensions must be specified by index. Labels are not permitted. If the dimension selection has
k > 1
dimensions, a single non-negative indexi
is equivalent toi:i+k
; a single negative index-i
is equivalent to-i-k:-i
.
- Returns:¶
Dimension expression with the transpose operation added.