Przejdź do treści

Numpy. Funkcja np.bincount(). Rozkład liczby sztuk w zamówieniach e-commerce.

Na czym to polega w sklepie

Funkcja np.bincount liczy wystąpienia każdej nieujemnej wartości całkowitej w tablicy. Indeks wyniku = wartość, komórka = licznik. Idealna do rozkładu quantity w line items, gdy interesuje cię „ile zamówień ma dokładnie 2 produkty”.

Przykład ze sklepu internetowego

Z eksportu zamówień wyciągasz tablicę items_per_order (liczba pozycji w koszyku). Chcesz histogram bez ręcznego groupby:

import numpy as np

items_per_order = np.array([1, 1, 2, 1, 3, 2, 1, 4, 2, 1, 1, 2])
counts = np.bincount(items_per_order)
# counts[1]=6 zamówień z 1 szt., counts[2]=4 z 2 szt., counts[3]=1, counts[4]=1

orders_with_2_items = counts[2] if len(counts) > 2 else 0

Co zrobić po stronie biznesu

  • Rozkład gwiazdek oceny produktu (1–5) w eksporcie recenzji sklepu.
  • Zliczanie dni od ostatniego zakupu w modelu win-back (wartości 0–N).
  • Pułapka: bincount wymaga nieujemnych intów - float i ujemne rzucą błąd; najpierw astype(int).

W skrócie

bincount to najszybszy histogram dla małych intów. Gdy zakres wartości jest duży (np. order_id), użyj histogram - inaczej wynik będzie gigantyczny.