transpose
语法
transpose(X)
别名:flip(X)
参数
X 是一个元组、矩阵、表或字典。
详情
如果X是一个元组,每个向量的长度必须相同,transpose 函数返回的是一个与X中每个向量长度相同的元组,返回结果中的第n个元素是由X中每个向量的第n个值组成的向量。
如果X是一个矩阵,transpose 函数返回X的转置矩阵。
如果X是一个表,transpose 函数把表X转换为一个有序字典(从1.30.21版本开始支持有序字典),表中的列名为key,每列的值为value。
如果X是一个字典,它的key必须是STRING类型,transpose 函数把字典X转换为一个表,key为列名,每个key对应的value都是等长的向量,表示每列的值。
例子
例1. X是一个元组。
$ x=(`A`B`C,1 2 3);
$ x.transpose();
(("A",1),("B",2),("C",3))
例2. X是一个矩阵。
$ x=1..6 $ 3:2;
$ x;
#0 |
#1 |
---|---|
1 |
4 |
2 |
5 |
3 |
6 |
$ transpose x;
#0 |
#1 |
#2 |
---|---|---|
1 |
2 |
3 |
4 |
5 |
6 |
例3. X是一个表。
$ timestamp = [09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12]
$ sym = `C`MS`MS`MS`IBM`IBM`C`C`C
$ price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29
$ qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800
$ t = table(timestamp, sym, qty, price);
$ t;
timestamp |
sym |
qty |
price |
---|---|---|---|
09:34:07 |
C |
2200 |
49.6 |
09:36:42 |
MS |
1900 |
29.46 |
09:36:51 |
MS |
2100 |
29.52 |
09:36:59 |
MS |
3200 |
30.02 |
09:32:47 |
IBM |
6800 |
174.97 |
09:35:26 |
IBM |
5400 |
175.23 |
09:34:16 |
C |
1300 |
50.76 |
09:34:26 |
C |
2500 |
50.32 |
09:38:12 |
C |
8800 |
51.29 |
transpose(t);
timestamp->[09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12]
sym->[C,MS,MS,MS,IBM,IBM,C,C,C]
qty->[2200,1900,2100,3200,6800,5400,1300,2500,8800]
price->[49.6,29.46,29.52,30.02,174.97,175.23,50.76,50.32,51.29]
例4. X是一个字典。
$ z=dict(`id`val,[`a`b`c,1 2 3]);
$ z;
val->[1,2,3]
id->[a,b,c]
$ transpose(z);
val |
id |
---|---|
1 |
a |
2 |
b |
3 |
c |