import numpy as np
import pandas as pd
import math
def sample_discrete(n, q):
elements = q.index.tolist()
probabilities = q.values.tolist()
x = np.random.choice(elements, n, p = probabilities)
return x
### Example
sample_discrete(15, pd.Series([.3, .4, .2, .1], index = ['a', 3, 'potato', math.exp(1)]))
array(['potato', '3', 'potato', '3', 'potato', '3', '2.718281828459045', '3', '3', 'a', '2.718281828459045', 'a', 'a', '3', '3'], dtype='<U17')