RxPY - Operadores matemáticos

promedio

Este operador calculará el promedio de la fuente observable dada y generará un observable que tendrá el valor promedio.

Sintaxis

average()

Valor devuelto

Devuelve un observable que tendrá el valor promedio.

Ejemplo

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.average()
)
sub1.subscribe(lambda x: print("Average is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
Average is 5.5

concat

Este operador tomará dos o más observables y dará un solo observable con todos los valores de la secuencia.

Sintaxis

concat(observable1, observable2...)

Parámetros

Observables: Lista de observables a concatenar.

Valor devuelto

Un observable se devuelve con un valor único fusionado de los valores del observable de origen.

Ejemplo

testrx.py

from rx import of, operators as op
test = of(2, 4, 6, 8, 10)
test2 = of(3,6,9,12,15)
sub1 = test.pipe(
   op.concat(test2)
)
sub1.subscribe(lambda x: print("Final value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
Final value is 2
Final value is 4
Final value is 6
Final value is 8
Final value is 10
Final value is 3
Final value is 6
Final value is 9
Final value is 12
Final value is 15

contar

Este operador toma un observable con valores y lo convierte en un observable que tendrá un valor único. La función de conteo toma la función de predicado como un argumento opcional. La función es de tipo booleano y agregará valor a la salida solo si cumple la condición.

Sintaxis

count(predicate_function=None)

Parámetros

La función de conteo toma la función de predicado como un argumento opcional. La función es de tipo booleano y agregará valor a la salida solo si cumple la condición.

Valor devuelto

Devolverá un observable con un valor único, es decir, el recuento de la fuente observable.

Ejemplo 1

from rx import of, operators as op
test = of(1,2,3, 4,5, 6,7, 8,9, 10)
sub1 = test.pipe(
   op.count()
)
sub1.subscribe(lambda x: print("The count is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The count is 10

Ejemplo 2: uso de una función de predicado

from rx import of, operators as op
test = of(1,2,3, 4,5, 6,7, 8,9, 10)
sub1 = test.pipe(
   op.count(lambda x : x %2 == 0)
)
sub1.subscribe(lambda x: print("The count of even numbers is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The count of even numbers is 5

max

Este operador dará un observable con el valor máximo de la fuente observable.

Sintaxis

max(comparer_function=None)

Parámetros

comparer_function: parámetro opcional. Esta función se utiliza en observables de origen para comparar valores.

Valor devuelto

Devuelve un observable con el valor máximo de la fuente observable.

Ejemplo 1

from rx import of, operators as op
test = of(12,32,41,50,280,250)
sub1 = test.pipe(
   op.max()
)
sub1.subscribe(lambda x: print("Max value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
Max value is 280

Example 2: comparer_function

from rx import of, operators as op
test = of(12,32,41,50,280,250)
sub1 = test.pipe(
   op.max(lambda a, b : a - b)
)
sub1.subscribe(lambda x: print("Max value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
Max value is 280

min

Este operador dará un observable con un valor mínimo de la fuente observable.

Sintaxis

min(comparer_function=None)

Parámetros

comparer_function: parámetro opcional. Esta función se utiliza en observables de origen para comparar valores.

Valor devuelto

Devuelve un observable con valor mínimo de la fuente observable.

Ejemplo 1

from rx import of, operators as op
test = of(12,32,41,50,280,250)
sub1 = test.pipe(
   op.min()
)
sub1.subscribe(lambda x: print("Min value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
Min value is 12

Ejemplo 2: uso de comparer_function

from rx import of, operators as op
test = of(12,32,41,50,280,250)
sub1 = test.pipe(
   op.min(lambda a, b : a - b)
)
sub1.subscribe(lambda x: print("Min value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
Min value is 12

reducir

Este operador toma una función llamada función acumuladora, que se usa en los valores provenientes de la fuente observable, y devuelve los valores acumulados en forma de observable, con un valor semilla opcional pasado a la función acumuladora.

Sintaxis

reduce(accumulator_func, seed=notset)

Parámetros

accumulator_func: Una función que se utiliza en los valores que provienen de la fuente observable y devuelve los valores acumulados en forma de observable.

seed:Opcional. No se establece el valor predeterminado. Es el valor inicial, que se utilizará dentro de la función de acumulador.

Valor devuelto

Devuelve un observable, con un único valor como salida de la función acumuladora aplicada a cada valor de la fuente observable.

Ejemplo

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.reduce(lambda acc, x: acc + x)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The value is 55

suma

Este operador devolverá un observable con la suma de todos los valores de los observables de origen.

Sintaxis

sum(key_mapper=none)

Parámetros

key_mapper: opcional. Esta es la función, que se aplica a los valores provenientes de la fuente observable.

Valor devuelto

Devuelve un observable con la suma de todos los valores de la fuente observable.

Ejemplo 1

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.sum()
)
sub1.subscribe(lambda x: print("The sum is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The sum is 55

Ejemplo 2: uso de la función key_mapper

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.sum(lambda a: a+1)
)
sub1.subscribe(lambda x: print("The sum is {0}".format(x)))

Usando la función key_mapper, estamos sumando todos los valores por 1 y obteniendo la suma.

E:\pyrx>python testrx.py
The sum is 65