Gegeven zijn een rij $$a$$ en verzameling getallen $$q$$. We willen de rij $$a$$ omzetten naar een nieuwe rij $$b$$. Het element $$b_i$$ is dan de grootste waarde $$p \in q$$ waarvoor $$p \le a_i$$. Indien er geen enkel element in $$q$$ steekt kleiner of gelijk aan $$a_i$$ is, dan wordt $$b_i$$ gelijk gesteld aan het kleinste element in $$q$$.
Schrijf de gevectoriseerde functie kwantiseer()
met als argumenten:
a
: een NumPy-rij of een float
die de om te zetten gegevens bevat q
: lijst met minstens 1 element float
, en dus van hetzelfde type als het argument a
.
Indien het argument a
een float
is, is het resultaat dus ook van het type float
.
Je mag een for
lus gebruiken in je oplossing, maar vermijd itereren over de elementen van een NumPy-rij!
kwantiseer(np.linspace(-5, 5, 21), [-3.0, -1.0, -2.0, 1.0, 3.0, 4.0, 2.0]) #[-3. -3. -3. -3. -3. -3. -2. -2. -1. -1. -1. -1. 1. 1. 2. 2. 3. 3. 4. 4. 4.] kwantiseer(-1.2, [-3.0, -1.0, -2.0, 1.0, 3.0, 4.0, 2.0]) #-2.0