Você está aqui: Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como criar uma matriz bidimensional ou tridimensional em Python

Quantidade de visualizações: 40 vezes
Uma das dúvidas mais frequentes que surgem entre os visitas do site é como declarar e inicializar uma matriz de n linhas por m colunas, ou seja, uma matriz bidimensional ou tridimensional.

Como a linguagem Python é dinamicamente tipada, e adiciona elementos a um vetor ou matriz também de forma dinâmica, a tarefa de se criar matrizes NxM nem sempre é uma tarefa trivial.

Nessa dica eu mostrarei duas formas comumente empregadas para a criação de matrizes 2D e 3D. Veja a primeira forma:

def main():
  # vamos declarar e construir uma matriz de duas linhas
  # e três colunas
  linhas = 2
  colunas = 3
  matriz = [[0 for x in range(colunas)] for y in range(linhas)]
  
  # vamos exibir as linhas e colunas da matriz
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      print(matriz[i][j], end='  ')
    print()
 
  # vamos atribuir uma valor à segunda linha, terceira coluna
  matriz[1][2] = 7

  # vamos exibir a matriz novamente
  print()
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      print(matriz[i][j], end='  ')
    print()    
 
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

0  0  0  
0  0  0  

0  0  0  
0  0  7

Veja agora a segunda abordagem, na qual usamos a função append() da classe List e dois laços for para montar listas aninhadas. Veja:

def main():
  # vamos declarar e construir uma matriz de duas linhas
  # e três colunas
  linhas = 2
  colunas = 3
  matriz = [] # cria uma matriz vazia
  for i in range(linhas):
    linha = [] # cria uma linha vazia
    for j in range(colunas):
      linha.append(0) # adiciona o valor 0
    matriz.append(linha) # adiciona a linha na matriz
    
  # vamos exibir as linhas e colunas da matriz
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      print(matriz[i][j], end='  ')
    print()
 
  # vamos atribuir uma valor à segunda linha, terceira coluna
  matriz[1][2] = 7

  # vamos exibir a matriz novamente
  print()
  for i in range(len(matriz)):
    for j in range(len(matriz[i])):
      print(matriz[i][j], end='  ')
    print()    
 
if __name__== "__main__":
  main()

O resultado deste código é o mesmo do anterior. Veja agora como podemos criar uma matriz 3D, ou seja, tridimensional:

def main():
  # vamos declarar e construir uma matriz de duas linhas,
  # três colunas e profundidade quatro
  linhas = 2
  colunas = 3
  profundidade = 4
  matriz = [] # cria uma matriz 3D vazia

  for i in range(linhas): # criamos as linhas
    matriz.append([])
    
    for j in range(colunas): # criamos as colunas
      matriz[i].append([])
  
      for k in range(profundidade): # criamos a profundidade
        matriz[i][j].append(0)
 
  # hora de testar a matriz. Vamos atribuir um valor na segunda
  # linha, terceira coluna e profundidade quatro
  matriz[1][2][3] = 15

  # e agora vamos obter o valor de volta
  print("O valor é:", matriz[1][2][3])
  
  # vamos exibir a matriz 3D toda
  print(matriz)
    
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

O valor é: 15
[[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 15]]]

Para finalizar, veja a forma compacta de se criar uma matriz 3D em Python usando "list comprehensions":

def main():
  # vamos declarar e construir uma matriz de duas linhas,
  # três colunas e profundidade quatro
  linhas = 2
  colunas = 3
  profundidade = 4
  
  # cria a matriz 3D e a preenche com zeros usando list comprehensions
  # se possível, coloque tudo em uma linha, pois a idéia é a usar a forma
  # compacta
  matriz = [[[0 for k in range(profundidade)] for j in range(colunas)] 
    for i in range(linhas)]
 
  # hora de testar a matriz. Vamos atribuir um valor na segunda
  # linha, terceira coluna e profundidade quatro
  matriz[1][2][3] = 15

  # e agora vamos obter o valor de volta
  print("O valor é:", matriz[1][2][3])
  
  # vamos exibir a matriz 3D toda
  print(matriz)
    
if __name__== "__main__":
  main()



Python ::: Fundamentos da Linguagem ::: Passos Iniciais

Python para iniciantes - Como importar módulos e identificadores Python usando a instrução import...as

Quantidade de visualizações: 6492 vezes
Quando importamos módulos para nossos programas, a linguagem Python permite que alteremos os nomes dos módulos. Isso pode ser feito com a instrução import...as. Veja:

# importa o módulo math com outro nome
import math as matematica

def main():
  # usa o método ceil do namespace matematica
  print("Valor arredondado: ", matematica.ceil(8.12))

if __name__== "__main__":
  main()

Ao executar este código nós teremos o seguinte resultado:

Valor arredondado: 9

É possível importar com outros nomes os métodos e identificadores de um módulo. Veja:

# importa o ceil com outro nome
from math import ceil as arredondar

def main():
  # usa o método arredondar
  print("Valor arredondado: ",  arredondar(8.12))

if __name__== "__main__":
  main()



Python ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Como usar a função type() da linguagem Python para descobrir o tipo de dados de uma variável

Quantidade de visualizações: 8911 vezes
Em algumas situações nós gostaríamos de verificar o tipo de uma variável, ou seja, o tipo do valor que ele contém no momento, antes de efetuar algum cálculo ou procedimento.

Em Python isso pode ser feito por meio da função type(), que nos retorna uma string indicando o tipo de dados sendo armazenado no momento. Note que, em Python, uma mesma variável pode assumir tipos diferentes durante a execução do programa.

Veja o código completo para o exemplo:

def main():
  var = "Osmar J. Silva"
  print("O tipo da variavel var é:", type(var)) 
 
  var = 45
  print("Agora o tipo da variavel var é:", type(var))
 
  var = 45.30
  print("E agora o tipo da variavel var é:", type(var))   
 
if __name__== "__main__":
  main()

Ao executarmos este código nós teremos o seguinte resultado:

O tipo da variavel var é: <class 'str'>
Agora o tipo da variavel var é: <class 'int'>
E agora o tipo da variavel var é: <class 'float'>


Python ::: Dicas & Truques ::: Data e Hora

Como adicionar dias à uma data usando o método timedelta() da classe datetime da linguagem Python

Quantidade de visualizações: 6464 vezes
Nesta dica mostrarei como é possível usar o método timedelta() da classe datetime do Python para adicionar um determinado número de dias a uma data. O truque aqui é fornecer apenas o dia para o método timedelta(), obter o resultado e somá-lo com a data que já temos.

Veja o código completo para o exemplo:

import datetime

# função principal do programa
def main():
  # dias a serem adicionados
  quant_dias = 2
 
  # Obtém a data de hoje
  hoje = datetime.date.today()
  print("Hoje é:", hoje)
 
  # Adiciona dias à data
  dias = datetime.timedelta(days=quant_dias)
  hoje = hoje + dias
 
  # Exibe o resultado
  print("Daqui à", quant_dias, "dias será", hoje)
 
if __name__== "__main__":
  main()

Ao executarmos este código Python nós teremos o seguinte resultado:

Hoje é: 2021-03-11
Daqui à 2 dias será 2021-03-13


Python ::: Matplotlib Python Library (Biblioteca Python Matplotlib) ::: Passos Iniciais

Plotagem e visualização de dados em Python - Como instalar a biblioteca Matplotlib e testar seu funcionamento

Quantidade de visualizações: 391 vezes
A biblioteca Matplotlib, escrita originalmente por John D. Hunter em 2003, é um dos pacotes Python mais populares para a plotagem e visualização de dados.

O acesso às funcionalidades da Matplotlib é feito por meio da interface Pylab, que lembra muito o MATLAB, a linguagem de programação proprietária desenvolvida pela MathWorks. Os usuários acostumados com essa ferramenta chegam a afirmar que a biblioteca Matplotlib, combinada com a biblioteca NumPy, pode ser considerada o equivalente open source do MATLAB.

Já tenho o Matplotlib disponível na minha instalação do Python?

Antes de iniciar qualquer projeto que envolva a biblioteca Matplotlib, é importante verificar se a mesma está disponível em sua instalação do Python. Isso pode ser de várias formas. Mostrarei como obter a lista de módulos usando a opção "list" do pip. Basta abrir uma janela de terminal e disparar o seguinte comando:

C:\Users\Osmar>pip list

Você terá um resultado parecido com:

C:\Users\Osmar>pip list
Package           Version
----------------- -------
astroid           2.4.2
colorama          0.4.4
isort             5.6.4
joblib            1.0.0
lazy-object-proxy 1.4.3
mccabe            0.6.1
numpy             1.19.4
pandas            1.1.5
Pillow            8.0.1
pip               20.3.3
pylint            2.6.0
python-dateutil   2.8.1
pytz              2020.4
scikit-learn      0.24.0
scipy             1.5.4
setuptools        49.2.1
six               1.15.0
threadpoolctl     2.1.0
toml              0.10.2
wrapt             1.12.1
wxPython          4.1.1
Uma outra forma é tentando importar o módulo matplotlib. Veja:

# importamos a bibliteca Matplotlib
import matplotlib as mp
 
def main():
  # vamos mostrar a versão da biblioteca Matplotlib
  versao = mp.__version__
 
  print("A versão do Matplotlib é:", versao)
 
if __name__== "__main__":
  main()

Se você tiver o Matplotlib instalado, o resultado desse código será algo como:

A versão do Matplotlib é: 3.4.1

Se você não tiver a biblioteca Matplotlib instalada, a seguinte mensagem de erro será exibida:

Exception has occurred: ModuleNotFoundError
File "c:\estudos_python\estudos.py", line 3, in <module>
  import matplotlib as mp
ModuleNotFoundError: No module named 'matplotlib'


Não tenho o Matplotlib ainda. O que faço?

Abra uma janela de terminal e dispare o comando abaixo:

C:\Users\Osmar>pip install matplotlib

Depois de alguns segundos você verá o seguinte resultado:

Collecting matplotlib
Downloading matplotlib-3.4.1-cp39-cp39-win_amd64.whl (7.1 MB)
|-| 7.1 MB 3.3 MB/s
Requirement already satisfied: pillow>=6.2.0 in c:\python_3_9_1\lib\site-packages (from matplotlib) (8.0.1)
Requirement already satisfied: python-dateutil>=2.7 in c:\python_3_9_1\lib\site-packages (from matplotlib) (2.8.1)
Requirement already satisfied: numpy>=1.16 in c:\python_3_9_1\lib\site-packages (from matplotlib) (1.19.4)
Collecting cycler>=0.10
Downloading cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
Requirement already satisfied: six in c:\users\osmar\appdata\roaming\python\python39\site-packages (from cycler>=0.10->matplotlib) (1.15.0)
Collecting kiwisolver>=1.0.1
Downloading kiwisolver-1.3.1-cp39-cp39-win_amd64.whl (51 kB)
|-| 51 kB 3.8 MB/s
Collecting pyparsing>=2.2.1
Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
|-| 67 kB 1.7 MB/s
Installing collected packages: pyparsing, kiwisolver, cycler, matplotlib
Successfully installed cycler-0.10.0 kiwisolver-1.3.1 matplotlib-3.4.1 pyparsing-2.4.7

Obteve resultado parecido? Pronto! Você já pode começar a usar a biblioteca Matplotlib em seus aplicações Python.


Python ::: Dicas & Truques ::: Strings e Caracteres

Como verificar se uma string contém apenas caracteres alfanuméricos (letras e números) usando a função isalnum() do módulo str da linguagem Python

Quantidade de visualizações: 14247 vezes
Nesta dica mostrarei como é possível usar a função isalnum() do módulo str do Python para verificar se uma palavra, frase ou texto contém apenas caracteres alfanuméricos (letras e números).

Veja o código completo para o exemplo:

# função principal do programa
def main():
  texto = "34kwjii5992"
 
  if texto.isalnum():
    print("A string contém apenas caracteres" \
      " alfanumericos")  
  else:
    print("A string não contem somente caracteres" \
      " alfanumericos")
 
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

A string contém apenas caracteres alfanuméricos


Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Elétrica pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 15 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: C#
3º lugar: PHP
4º lugar: Delphi
5º lugar: Python
6º lugar: JavaScript
7º lugar: C
8º lugar: C++
9º lugar: VB.NET
10º lugar: JSP (Java Server Pages)



© 2021 Arquivo de Códigos - Todos os direitos reservados | Versión en Español | Versão em Português