The following sequence manipulator methods take a variety of input sequence arguments and produce result sequences or scalar types as described in the table below:
reverse() Return the object's sequence in reverse order concat(input) Return the object's sequence concatenated with the input sequence limit( from, till ) Return the sub-sequence [from,till] of the object's sequence get( [size] ) Extract data from the object's sequence to a list. If the optional parameter size is specified, limit the list to that length unget( input, elemtype [, elemsize] ) Iterate through the buffer input previously created with get()
to return the result sequence of the type elemtype. The optional parameter elemsize is the length of the buffer.uniq() Return only the unique elements in the object's ordered sequence by "collapsing duplicates" norm() Return the normalized values of the object's sequence; i.e. divide each sequence element by the square root of the sum of squares of all elements. thin( origin, step ) Return the object's sequence "thinned" by selecting elements with the specified origin and step. diff() Return the sequence consisting of the differences between pairs of the object's sequence elements const( value, elemtype [,elemsize] ) Return the sequence of the specified type elemtype with elements having the constant value value. The optional parameter elemsize determines the element size for a sequence of type character array trend() Return in result sequence the " trend" by comparing pairs of the object's sequence elements the sign of the difference between pairs of non-equal sequence elements. For example, the input sequence
{1,2,3,3,2,2,4,5,6,5,5}
would produce the result{0,1,1,1,-1,-1,1,1,1,-1,-1}
.tee() Create two iterators for the object's sequence (i.e. fork the sequence iterator). (Note that these iterators should be traversed together (i.e. used in the same expression). repeat( n_times ) Return the sequence with each element of the object's sequence repeated n_times times cross( cross_direction ) Return the positions in the object's sequence where it crosses zero. If the integer argument cross_direction is positive then the result sequence starts with the first cross above zero; if negative it starts with cross below zero; if cross_direction is zero then it doesn't matter, i.e. the first cross can be above or below zero. extrema( first_extremum ) Return the positions of extrema (local minimum and maximums) in the object's sequence. If the integer argument first_extremum is positive then the result sequence starts with first local maximum; if negative it starts with with local minimum; if first_extremum is zero then it doesn't matter. Example
Following is an example code snippet demonstrating sequence manipulator methods:
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) ...