No código disponibilizado no curso, o parâmetro dimensional passado para a função np.random.rand() foi feito de maneira estática, tal como a seguir:
todas_matriculas = []
x = np.random.rand(20)
prob = x / sum(x)
Talvez fosse mais interessante criar uma nova variável que armazena a quantidade de cursos disponíveis na plataforma fictícia, de forma que uma eventual mudança no tamanho do DataFrame de cursos seja atualizada no código, como a seguir:
total_cursos = df_cursos.shape[0]
total_matriculas_alunos = []
x = np.random.rand(total_cursos)
prob = x / sum(x)