Table des matières

Snippets de fonctions mathématiques en Python

Tests statistiques

linspace

Remplacement de la fonction linspace de NumPy (source):

def linspace(a, b, n=1):
    if n < 2:
        return b
    diff = (float(b) - a)/(n - 1)
    return [diff * i + a  for i in range(n)]

Intersection de deux droites

Première intersection de deux droites, dont les abscisses sont identiques:

def find_first_intersection(x, y1, y2):
  for i in range(len(y1)-1):
    if (y1[i] < y2[i] and y1[i+1] > y2[i+1]) or (y1[i] > y2[i] and y1[i+1] < y2[i+1]):
      return x[i+1] + (y2[i+1] - y1[i+1]) * (x[i+1] - x[i]) / (y1[i+1] - y1[i] - y2[i+1] + y2[i])
 
  return None

Formule d'une fonction affine à partir de deux points

y = ( (yB - yA) / (xB- xA) ) * (x - xA) + yA

Pour une formule du type $y=ax+b$: $a=\frac{y_1-y_2}{x_1-x_2}$ et $b = y_1 - ax_1$

Somme terme à terme d'une liste de listes

l = [[1, 2, 3], 
        [4, 5, 6], 
        [7, 8, 9]]
 
res = [sum(i) for i in zip(*l)]