¿Cómo podemos encajar una señal en la función sigmoide en Python?

Estoy trabajando con un conjunto de datos simple y por razones de reproducibilidad, lo comparto aquí .

Para aclarar lo que estoy haciendo, de la columna 2, estoy leyendo la fila actual y la comparo con el valor de la fila anterior. Si es mayor, sigo comparando. Si el valor actual es más pequeño que el valor de la fila anterior, quiero dividir el valor actual (más pequeño) por el valor anterior (más grande). En consecuencia, el siguiente código:

import numpy as np import scipy.stats import matplotlib.pyplot as plt import seaborn as sns protocols = {} types = {"data_v": "data_v.csv"} for protname, fname in types.items(): col_time,col_window = np.loadtxt(fname,delimiter=',').T trailing_window = col_window[:-1] # "past" values at a given index leading_window = col_window[1:] # "current values at a given index decreasing_inds = np.where(leading_window < trailing_window)[0] quotient = leading_window[decreasing_inds]/trailing_window[decreasing_inds] quotient_times = col_time[decreasing_inds] protocols[protname] = { "col_time": col_time, "col_window": col_window, "quotient_times": quotient_times, "quotient": quotient, } plt.figure(); plt.clf() plt.plot(quotient_times, quotient, ".", label=protname, color="blue") plt.ylim(0, 1.0001) plt.title(protname) plt.xlabel("quotient_times") plt.ylabel("quotient") plt.legend() plt.show() sns.distplot(quotient, hist=False, label=protname) 

Esto da las siguientes plots.

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

Como podemos ver en las plots.

  • Data-V tiene un cociente de 0.8 cuando el quotient_times es menor que 3 y el cociente permanece 0.5 si el quotient_times es mayor que 3.

¿Cómo podemos encajar esto en una función sigmoide para tener una gráfica como la siguiente? Quiero que el peso disminuya rápidamente a cero a medida que aumenta el valor de quotient_times .

introduzca la descripción de la imagen aquí