Gegeven een 2D NumPy tabel, waarbij de rijen vectoren in $$N$$ dimensies voorstellen. We willen deze tabel kleiner maken, door vectoren te schrappen die sterk op andere vectoren lijken. Je kan als volgt een vector verwijderen:

Je herhaalt deze procedure tot je het gewenste aantal rijen overhoudt. $$ $$

Schrijf de functie reduceer() met als argumenten:

Het getal $$K$$ geeft het aantal gewenste rijen in de resultaattabel terug. Het resultaat van de functie is een 2D NumPy-tabel met $$K$$ rijen en $$N$$ kolommen, die tot stand komt zoals hierboven aangegeven.$$ $$

Voorbeeld

Merk op dat het Dodonascript je resultaat omzet naar een lijst-van-lijsten. Het resultaat van je functie moet wel degelijk een 2D NumPy-tabel zijn. De numerieke waarden worden ook afgekapt op 4 decimalen.

reduceer(np.array([[-6.0, 7.1, 3.2, 6.5], [1.1, -7.2, -3.0, -2.8], [2.2, -1.8, -2.0, 8.0], [3.1, 4.4, -4.1, 8.1], [5.7, 1.4, -1.9, 6.6], [-4.1, 1.4, 3.0, -4.7], [2.7, -8.5, 4.8, -0.4], [0.7, -1.7, 0.2, -4.9]]), 8)
#[[-6.0, 7.1, 3.2, 6.5], [1.1, -7.2, -3.0, -2.8], [2.2, -1.8, -2.0, 8.0], [3.1, 4.4, -4.1, 8.1], [5.7, 1.4, -1.9, 6.6], [-4.1, 1.4, 3.0, -4.7], [2.7, -8.5, 4.8, -0.4], [0.7, -1.7, 0.2, -4.9]]

reduceer(np.array([[-9.6, -9.4, 3.7, -4.9], [-6.1, 2.3, 4.7, 5.0], [-2.5, -2.4, 8.8, -3.1], [2.5, -4.7, -3.8, -5.8], [8.4, -5.8, 9.1, -0.4], [2.6, -0.9, -3.1, 7.5], [-6.7, -5.0, 3.0, 3.3], [-5.7, -7.9, 3.6, -9.1]]), 6)
#[[-2.5, -2.4, 8.8, -3.1], [2.5, -4.7, -3.8, -5.8], [8.4, -5.8, 9.1, -0.4], [2.6, -0.9, -3.1, 7.5], [-6.7, -5.0, 3.0, 3.3], [-5.7, -7.9, 3.6, -9.1]]