NumPy: Data e Hora

Última atualização: 2026-08-26

1. O que Você Aprenderá



2. Conceitos-Chave

PYTHON
import numpy as np

# Criando arrays de datas
dates = np.array(['2024-01-01', '2024-02-01', '2024-03-01'], dtype='datetime64')
print(dates)  # ['2024-01-01' '2024-02-01' '2024-03-01']

# Aritmética de datas
print(dates + np.arange(3))  # adicionar dias

# Intervalo de datas
range_dates = np.arange('2024-01-01', '2024-01-10', dtype='datetime64')
print(range_dates)

# Extrair componentes
print(dates.astype('datetime64[Y]'))  # ano
print(dates.astype('datetime64[M]'))  # mês
TEXT 📖 Somente leitura
> **Output:** Execute o NumPy 2.x em seu ambiente Python local para ver a saída do ndarray. O servidor Piston não tem o NumPy pré-instalado — instale-o localmente (`pip install numpy`) e compare. Os valores reais podem variar conforme a versão do NumPy e a semente aleatória.

▶ Exemplo: Criando intervalos de datas (Dificuldade ⭐)

PYTHON
import numpy as np

# Intervalo diário
days = np.arange('2024-01-01', '2024-01-11', dtype='datetime64')
print("Diário:", days)

# Intervalo mensal
months = np.arange('2024-01', '2024-07', dtype='datetime64[M]')
print("Mensal:", months)

# Intervalo horário
hours = np.arange('2024-01-01', '2024-01-02', dtype='datetime64[h]')
print("Horário:", hours)

Output:

TEXT 📖 Somente leitura
Diário: ['2024-01-01' '2024-01-02' '2024-01-03' '2024-01-04' '2024-01-05'
 '2024-01-06' '2024-01-07' '2024-01-08' '2024-01-09' '2024-01-10']
Mensal: ['2024-01' '2024-02' '2024-03' '2024-04' '2024-05' '2024-06']
Horário: ['2024-01-01T00' '2024-01-01T01' '2024-01-01T02' '2024-01-01T03'
 '2024-01-01T04' '2024-01-01T05' '2024-01-01T06' '2024-01-01T07'
 '2024-01-01T08' '2024-01-01T09' '2024-01-01T10' '2024-01-01T11'
 '2024-01-01T12' '2024-01-01T13' '2024-01-01T14' '2024-01-01T15'
 '2024-01-01T16' '2024-01-01T17' '2024-01-01T18' '2024-01-01T19'
 '2024-01-01T20' '2024-01-01T21' '2024-01-01T22' '2024-01-01T23']

▶ Exemplo: Aritmética de datas (Dificuldade ⭐⭐)

PYTHON
import numpy as np

start = np.array('2024-01-15', dtype='datetime64')

# Adicionar dias
print("Início:", start)
print("+7 dias:", start + 7)
print("+30 dias:", start + 30)
print("-5 dias:", start - 5)

# Diferença entre datas
d1 = np.array('2024-01-01', dtype='datetime64')
d2 = np.array('2024-12-31', dtype='datetime64')
delta = d2 - d1
print("Dias em 2024:", delta)

# Extrair componentes
date = np.array('2024-07-04', dtype='datetime64')
print("Ano:", date.astype('datetime64[Y]'))
print("Mês:", date.astype('datetime64[M]'))

Output:

TEXT 📖 Somente leitura
Início: 2024-01-15
+7 dias: 2024-01-22
+30 dias: 2024-02-14
-5 dias: 2024-01-10
Dias em 2024: 365 days
Ano: 2024
Mês: 2024-07

▶ Exemplo: Cálculos de dias úteis (Dificuldade ⭐⭐)

PYTHON
import numpy as np

start = np.datetime64('2024-01-01')
end = np.datetime64('2024-01-31')

# Contar dias úteis
bd = np.busday_count(start, end)
print(f"Dias úteis em Jan 2024: {bd}")

# Encontrar o próximo dia útil
print("Próximo dia útil após 2024-01-05:", np.busday_offset('2024-01-05', 0, roll='forward'))

# Intervalo de dias úteis
biz_days = np.busday_offset('2024-01-01', np.arange(10))
print("Primeiros 10 dias úteis de 2024:", biz_days)

Output:

TEXT 📖 Somente leitura
Dias úteis em Jan 2024: 22
Próximo dia útil após 2024-01-05: 2024-01-08
Primeiros 10 dias úteis de 2024: ['2024-01-01' '2024-01-02' '2024-01-03' '2024-01-04' '2024-01-05'
 '2024-01-08' '2024-01-09' '2024-01-10' '2024-01-11' '2024-01-12']

P: Qual é a diferença entre datetime64 e o datetime do Python? R: datetime64 é um inteiro de 64 bits de largura fixa representando tempo, tornando-o rápido e eficiente em memória. O datetime do Python é um objeto completo com mais flexibilidade, mas maior sobrecarga.

P: Qual é a resolução do datetime64? R: Depende da unidade — datetime64[Y] (ano), datetime64[M] (mês), datetime64[D] (dia), datetime64[h] (hora), datetime64[ms] (milissegundo), datetime64[ns] (nanossegundo).

P: Como computo dias úteis? R: Use np.busday_count(start, end) para contar dias úteis entre duas datas, e np.busday_offset para encontrar o dia útil mais próximo.


❓ Perguntas Frequentes

P: O que é a coisa mais importante a lembrar? R: As operações do NumPy são vetorizadas — evite loops Python para melhor desempenho.

P: Onde posso aprender mais? R: Consulte a documentação oficial do NumPy em numpy.org para referências detalhadas e tópicos avançados.

P: Isso funciona com o NumPy 2.x? R: Sim — todos os exemplos são compatíveis com o NumPy 2.x. Algumas APIs mais antigas (como np.random.seed) ainda são suportadas, mas as alternativas modernas são recomendadas.

📖 Resumo



📝 Exercícios

  1. Básico (Dificuldade ⭐): Crie um array com todas as datas de Janeiro de 2024. Imprima as primeiras 5 e as últimas 5 datas.

  2. Intermediário (Dificuldade ⭐⭐): Crie um intervalo de datas de 2024-01-01 a 2024-12-31. Extraia o mês de cada data e conte quantas datas caem em cada mês.

  3. Desafio (Dificuldade ⭐⭐⭐): Compute o número de dias úteis entre 2024-01-01 e 2024-12-31. Compare com o número total de dias calendário.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%