Boa tarde Pedro, tudo bem? Espero que sim!
Obrigado pela pergunta!
De acordo com a PEP-8, que é uma convenção adotada para boas práticas da linguagem Python, as importações devem seguir as seguintes regras:
Imports devem ser sempre colocados no topo do arquivo, logo depois de quaisquer comentários ou docstrings, e antes de constantes ou globais. Eles devem ser agrupados seguindo a ordem:
- módulos da biblioteca padrão
- módulos grandes relacionados entre si (por exemplo, todos os módulos de e-mail usados pela aplicação)
- módulos específicos da aplicação
Você deve colocar uma linha em branco separando cada grupo de módulos.
Pode checar a informação no link abaixo:
https://wiki.python.org.br/GuiaDeEstilo
Porém é uma convenção e nada impede de você importar bibliotecas dentro das funções, sobretudo quando irá utilizar alguma coisa do pacote somente dentro de uma função que irá rodar poucas vezes.
Há por exemplo essa discussão no Stack Overflow, sobre a eficiência de memória:
https://stackoverflow.com/questions/3095071/in-python-what-happens-when-you-import-inside-of-a-function
Estou à disposição, bons estudos!