Olá,
Na aula 3 temos o seguinte código para "matricular" os alunos em seus cursos:
for index, row in nomes.iterrows():
id = row.id_aluno
matriculas = row.matriculas
for i in range(matriculas):
mat = [id, np.random.choice(cursos.index, p = prob)]
todas_matriculas.append(mat)
Como o choice() é chamado "matriculas"-vezes por causa do range(), isso não pode fazer com que um aluno seja matriculado mais de uma vez em um mesmo curso?
Cada vez que o choice() é executado ele retorna um valor aleatório de cursos.index, mas ele não mantém nenhum histórico se o curso já foi escolhido anteriormente.
Qual seria uma solução para esse problema?
Eu pensei em usar permutation() e pegar os primeiros "matriculas" elementos da lista que ele retorna:
for _, row in nomes.iterrows():
id_aluno = row.id_aluno
n_matriculas = row.matriculas
lista_cursos = np.random.permutation(cursos.index)[0:n_matriculas]
for curso_id in lista_cursos:
mat = [id_aluno, curso_id]
todas_matriculas.append(mat)
Obrigado