Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Função permutation()

Não entendi muito bem a finalidade de usar a função permutation(), o instrutor disse:

"[03:21] Esse 34 que aparece aqui é a posição que esse nome apareceu. Eu não quero isso, eu quero que o Sebastião, a Marlene e o Maicon tenham IDs aleatórios, e começando de 1 e indo até 400."

Primeiro, se os valores são gerados aleatoriamente, o que garante que eles vão começar do número 1 e ir até 400, não poderia aparecer números, por exemplo, [741, 546, 899]? Qual linha de código garante isso?

Segundo, se os valores gerados já são aleatórios, ou seja, não vão aparecer em sequência no DataFrame, porque utilizar o permutation?

nomes['ID alunos'] = np.random.permutation(total_alunos) + 1

Por fim, qual a finalidade de somar um?

3 respostas
solução!

Olá Janderson tudo bom? =)

Gostando de ver seu empenho!

Vamos as questões!

"Primeiro, se os valores são gerados aleatoriamente, o que garante que eles vão começar do número 1 e ir até 400, não poderia aparecer números, por exemplo, [741, 546, 899]? Qual linha de código garante isso?"

Certo. Nós garantimos isso nessa parte aqui:

total_alunos = len(nomes)

Pois determinamos que a variável total_alunos terá como tamanho máximo o comprimento da nossa lista de nomes ou seja, 400. O len garante isso.

nomes_f = pd.read_json("https://servicodados.ibge.gov.br/api/v1/censos/nomes/ranking?qtd=200&sexo=f")
nomes_m = pd.read_json("https://servicodados.ibge.gov.br/api/v1/censos/nomes/ranking?qtd=200&sexo=m")
print("Quantidade de nomes: " + str(len(nomes_f) + len (nomes_m)))

Quantidade de nomes: 400

Nessa parte tínhamos a informação do tamanho da lista nomes. Assim não surgirão números fora desse raio.

"Segundo, se os valores gerados já são aleatórios, ou seja, não vão aparecer em sequência no DataFrame, porque utilizar o permutation?"

Conforme a documentação técnica que vemos AQUI

Parâmetros
x int ou array_like
Se x é um número inteiro, permute aleatoriamente np.arange(x). Se x for uma matriz, faça uma cópia e embaralhe os elementos aleatoriamente.

Devoluções
fora ndarray
Sequência permutada ou intervalo de array.

Como podemos observar ali, no nosso exemplo ele faz uma cópia e embaralha os elementos aleatoriamente, pois se trata de uma matriz nosso dataframe.

"nomes['ID alunos'] = np.random.permutation(total_alunos) + 1 Por fim, qual a finalidade de somar um?"

Nessa parte o +1 é colocado para que não exista índice(ID) 0(zero) para os nossos alunos. Então no lugar da lista correr de 0 à 399 ela corre de 1 à 400.

Espero que eu tenha esclarecido suas dúvidas! Até a próxima Janderson!

Bons estudos!

Aproveitando a quarentena para estudar, valeu por sempre estar aqui para me ajudar!!!

Que isso Janderson! Eu que agradeço =)

É bom ocupar a mente com coisas boas msm nesses tempos difíceis...

Conte conosco!