NumPy: Operações com Strings

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

1. O que Você Aprenderá



2. Conceitos-Chave

PYTHON
import numpy as np

names = np.array(['alice', 'bob', 'charlie'])

# Operações de string vetorizadas
print(np.char.upper(names))     # ['ALICE' 'BOB' 'CHARLIE']
print(np.char.capitalize(names))  # ['Alice' 'Bob' 'Charlie']
print(np.char.title(names))     # ['Alice' 'Bob' 'Charlie']

# Correspondência de padrões
print(np.char.find(names, 'li'))  # [ 2 -1  3]
print(np.char.count(names, 'e'))  # [1 0 1]

# Juntar e dividir
print(np.char.join('-', names))  # ['a-l-i-c-e' 'b-o-b' 'c-h-a-r-l-i-e']
print(np.char.split(names, 'i'))  # [['al', 'ce'], ['bob'], ['charl', 'e']]
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: Operações básicas com strings (Dificuldade ⭐)

PYTHON
import numpy as np

names = np.array(['alice', 'bob', 'charlie', 'diana'])

print("Maiúsculas:", np.char.upper(names))
print("Minúsculas:", np.char.lower(names))
print("Capitalizar:", np.char.capitalize(names))
print("Título:", np.char.title(names))
print("Inverter caixa:", np.char.swapcase(names))

Output:

TEXT 📖 Somente leitura
Maiúsculas: ['ALICE' 'BOB' 'CHARLIE' 'DIANA']
Minúsculas: ['alice' 'bob' 'charlie' 'diana']
Capitalizar: ['Alice' 'Bob' 'Charlie' 'Diana']
Título: ['Alice' 'Bob' 'Charlie' 'Diana']
Inverter caixa: ['ALICE' 'BOB' 'CHARLIE' 'DIANA']

▶ Exemplo: Correspondência de padrões em strings (Dificuldade ⭐⭐)

PYTHON
import numpy as np

emails = np.array(['alice@work.com', 'bob@home.org', 'charlie@school.edu'])

# Encontrar posição do '@'
at_pos = np.char.find(emails, '@')
print("Posições de @:", at_pos)

# Contar ocorrências de 'e'
e_count = np.char.count(emails, 'e')
print("Contagens de 'e':", e_count)

# Verificar início/fim
print("Começa com 'a':", np.char.startswith(emails, 'a'))
print("Termina com '.edu':", np.char.endswith(emails, '.edu'))

Output:

TEXT 📖 Somente leitura
Posições de @: [5 3 7]
Contagens de 'e': [1 1 2]
Começa com 'a': [ True False False]
Termina com '.edu': [False False  True]

▶ Exemplo: Junção e preenchimento de strings (Dificuldade ⭐⭐)

PYTHON
import numpy as np

words = np.array(['hello', 'world', 'numpy'])

# Juntar caracteres com separador
print("Juntar:", np.char.join('-', words))

# Preencher strings para largura fixa
print("Preencher centro:\n", np.char.center(words, 10, fillchar='='))
print("Preencher esquerda:\n", np.char.ljust(words, 10, fillchar='.'))
print("Preencher direita:\n", np.char.rjust(words, 10, fillchar='.'))

# Remover espaços em branco
messy = np.array(['  alice  ', '  bob  ', '  charlie  '])
print("Sem espaços:", np.char.strip(messy))

Output:

TEXT 📖 Somente leitura
Juntar: ['h-e-l-l-o' 'w-o-r-l-d' 'n-u-m-p-y']
Preencher centro:
 ['==hello===' '==world====' '==numpy====']
Preencher esquerda:
 ['hello.....' 'world.....' 'numpy.....']
Preencher direita:
 ['.....hello' '.....world' '.....numpy']
Sem espaços: ['alice' 'bob' 'charlie']

P: Operações de string do NumPy são mais rápidas que loops Python? R: Sim, para arrays grandes — a vetorização em nível C é muito mais rápida que iterar por strings Python. Mas para strings individuais, os métodos nativos do Python são mais simples.

P: Qual é o dtype para arrays de strings? R: np.str_ (ou 'U' para Unicode). Arrays de strings têm um comprimento máximo fixo, que determina o uso de memória. Strings de comprimento variável usam dtype object.

P: Posso usar expressões regulares? R: O NumPy não tem suporte nativo a regex. Use np.vectorize(re.search) ou o acessador .str.contains() do Pandas para operações regex em arrays.


❓ 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 de 5 nomes. Aplique upper, lower, capitalize e title a todos os elementos.

  2. Intermediário (Dificuldade ⭐⭐): Crie um array de endereços de email. Use np.char.find para encontrar a posição de '@' em cada email. Depois use np.char.split para extrair a parte do domínio.

  3. Desafio (Dificuldade ⭐⭐⭐): Crie um array de 1000 strings aleatórias. Compare o desempenho de np.char.upper com uma compreensão de lista Python. Registre o fator de aceleração.

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%