操作函数
以下序列操作方法接受多种输入序列参数,并生成结果序列或标量类型,具体描述见下表:
reverse
reverse()
返回对象序列的逆序
concat
concat(input)
返回对象序列与输入序列的连接结果
limit
limit( from, till )
返回对象序列的子序列 [from,till]
get
get( [size] )
从对象序列中提取数据到列表。如果指定了可选参数 size,则将列表限制为该长度
unget
unget( input, elemtype [, elemsize] )
遍历先前使用 get() 创建的缓冲区 input,以返回类型为 elemtype 的结果序列。可选参数 elemsize 是缓冲区的长度。
uniq
uniq()
通过“合并重复项”返回对象有序序列中的唯一元素
norm
norm()
返回对象序列的归一化值;即每个序列元素除以所有元素平方和的平方根。
thin
thin( origin, step )
通过选择具有指定起始位置和步长的元素,返回对象序列的“稀疏”结果。
diff
diff()
返回由对象序列元素成对差值组成的序列
const
const( value, elemtype [,elemsize] )
返回指定类型为 elemtype 的元素具有常量值 value 的序列。可选参数 elemsize 确定字符数组类型序列的元素大小
trend
trend()
通过比较对象序列元素成对的差值的符号来返回结果序列中的“趋势”。例如,输入序列 {1,2,3,3,2,2,4,5,6,5,5} 将产生结果 {0,1,1,1,-1,-1,1,1,1,-1,-1}。
tee
tee()
为对象的序列创建两个迭代器(即分叉序列迭代器)。(请注意,这些迭代器应一起遍历(即在同一个表达式中使用)。
repeat
repeat( n_times )
返回每个对象序列元素重复 n_times 次的序列
cross
cross( cross_direction )
返回对象序列中穿过零的位置。如果整数参数 cross_direction 为正,则结果序列从第一个位于零以上的交叉点开始;如果为负,则从第一个位于零以下的交叉点开始;如果 cross_direction 为零,则无关紧要,即第一个交叉点可以位于零以上或零以下。
extrema
extrema( first_extremum )
返回对象序列中极值(局部最小值和最大值)的位置。如果整数参数 first_extremum 为正,则结果序列从第一个局部最大值开始;如果为负,则从第一个局部最小值开始;如果 first_extremum 为零,则无关紧要。
示例
以下是一个示例代码片段,展示了序列操作方法:
cursor = con.cursor("Quote", "by_sym")
for quote in cursor:
...
cl1,cl2 = quote.close.tee()
avg5_it = cl1.window_agg_avg(5)
avg20_it = cl2.window_agg_avg(20)
sub_it = avg20_it.sub(avg5_it)
cross_it = sub_it.cross(1)
agg_it = quote.day.map(cross_it)
...