Przejdź do treści

Numpy. Funkcja np.argsort(). Ranking SKU według przychodu bez sortowania całej tabeli.

Na czym to polega w sklepie

Funkcja np.argsort zwraca indeksy elementów w kolejności rosnącej (lub malejącej z [::-1]). Nie mutuje oryginalnej tablicy - przydatne gdy masz równoległe tablice sku_ids i revenue z eksportu line items.

Przykład ze sklepu internetowego

Tablica przychodu per SKU z tygodnia promocji. Chcesz indeksy 5 produktów z najwyższym revenue do bloku „bestsellery” w mailingu:

import numpy as np

sku_ids = np.array(["SKU-100", "SKU-204", "SKU-310", "SKU-088", "SKU-501"])
revenue = np.array([12400.0, 8900.0, 15600.0, 3200.0, 11200.0])

top5_idx = np.argsort(revenue)[::-1][:5]
top_skus = sku_ids[top5_idx]
# argsort na revenue, nie na sku_ids - sortujesz metrykę, nie etykietę

Co zrobić po stronie biznesu

  • Top kampanie po ROAS - np.argsort(roas)[::-1][:10] do slajdu weekly.
  • Identyfikacja najsłabszych kreacji w ad secie (najniższy CTR).
  • Pułapka: argsort na stringach SKU sortuje alfabetycznie - zawsze sortuj tablicę numeryczną metryki.

W skrócie

argsort + fancy indexing to numpy-owy wzorzec „top N”. Oryginalne tablice zostają nietknięte - ważne przy wielokrotnym rankingu tych samych danych.