Como alterar o tipo de inteiro ao criar meshgrid com Numpy?
Eu tenho o seguinte erro
MemoryError: Não é possível alocar 201. GiB para uma matriz com forma (2999, 2999, 2999) e tipo de dados int64
ao criar uma meshgrid com Numpy usando o seguinte código
dimension=3
tot_length=2000
list_no=range(1, tot_length)
arr = np.meshgrid ( *[list_no for _ in range ( dimension )] )
Posso saber onde alterar o int64 para int32 ou outra configuração possível que me permita maximizar o número do tot_lengthqual é maior do que o valor2000
Verifiquei a documentação , mas não consta a opção de alterar o tipo de dados para type32.
Respostas
Posso saber onde alterar o int64 para int32
NumPy está adivinhando int64porque você está dando a ele um rangeobjeto onde ele espera um array e ranges são sequências de int. Use uma matriz se não quiser adivinhar:
list_no = np.array(range(1, tot_length), dtype=np.int32)
ou mais simplesmente
list_no = np.arange(1, tot_length, dtype=np.int32)
Claro, você ainda precisará de 100 GiB de memória, o que ainda é muito grande.