def variance(source: ObservableBase) -> ObservableBase: """ Returns the statistical variance of the numerical emissions. The sequence must be finite. """ squared_values = source.to_list() \ .flat_map(lambda l: Observable.from_(l).average().flat_map(lambda avg: Observable.from_(l).map(lambda i: i - avg))) \ .map(lambda i: i * i) \ .publish() \ .auto_connect(2) return Observable.zip(squared_values.sum(), squared_values.count(), lambda sum, ct: sum / (ct - 1))
def zip_list(cls, *args): """Merge the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. Arguments: args (Tuple): Observable sources. Returns: Observable: Returns an observable sequence containing lists of elements at corresponding indexes. """ def result(*args): return list(args) args += (result,) return Observable.zip(*args)
def zip_list(cls, *args): """Merge the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. Keyword arguments: :param Observable cls: Class :param Tuple args: Observable sources. :return: Returns an observable sequence containing lists of elements at corresponding indexes. :rtype: Observable """ def result(*args): return list(args) args += (result, ) return Observable.zip(*args)
def zip_list(cls, *args): """Merge the specified observable sequences into one observable sequence by emitting a list with the elements of the observable sequences at corresponding indexes. Keyword arguments: :param Observable cls: Class :param Tuple args: Observable sources. :return: Returns an observable sequence containing lists of elements at corresponding indexes. :rtype: Observable """ def result(*args): return list(args) args += (result,) return Observable.zip(*args)