sábado, 30 de maio de 2020

Códigos de tipos em Python

Códigos de tipos em Python

As arrays em python se comportam muito semelhantes às listas, mas elas têm o mesmo tipo de dados armazenados nela. O tipo de dados é especificado no momento da criação da matriz, usando um único caractere chamado código de tipo.
Abaixo está a tabela para códigos de tipo, usados para definir matrizes em python, e seu tipo de dados correspondente em C++.

Código de tipo Tipo C++ Tipo Python Tamanho mínimo em bytes
'c' char Carácter 1
'b' signed char int 1
'B' unsigned char int 1
'u' Py_UNICODE Carácter unicode 2
'h' signed short int 2
'H' unsigned short int 2
'i' signed int int 2
'I' unsigned int long 2
'l' signed long int 4
'L' unsigned long long 4
'f' float float 4
'd' double float 8

Abaixo está um exemplo de uma matriz, do tipo char em C ++ e caractere em python.

C++
#include <iostream>
using namespace std;

int main() {
  char a[5] = {'a','e','i','o','u'}; // define uma array do tipo char para 5 elementos

  for (int i = 0; i < 5; i++){
    cout << a[i] << " "; // mostra na tela
  }

}
Python
import array as arr # importando o módulo array

a = arr.array('c',['a','e','i','o','u']) # cria uma array
print(a) # mostra na tela

Fonte: Type codes in Python
Licença: Creative Commons -Attribution -ShareAlike 4.0 (CC-BY-SA 4.0)

Python vs. Java

Python vs. Java

Java

Java é uma linguagem orientada a objetos com uma sintaxe semelhante à do C/C ++, tornando-o familiar para muitos programadores. Ela é vinculada dinamicamente, permitindo que o novo código seja baixado e executado, mas não é dinamicamente tipada.

Python

Python é uma linguagem de alto nível eficiente, legível e poderosa com gerenciamento automático de memória.

Em termos de velocidade, o Java é mais rápido que o Python, pois é uma linguagem compilada. Leva menos tempo para executar o código.
Python é uma linguagem interpretada e determina o tipo de dados em tempo de execução, tornando-o comparativamente mais lento.

Java Vs Python

Java é muito detalhado, pois são necessárias 10 linhas de código para ler um arquivo em Java, em comparação com o Python.
Para ler um arquivo, são necessárias apenas duas linhas de código no Python.
Java não está mais na moda como costumava ser, mas ainda é a linguagem de programação mais popular em praticamente qualquer medida.
Python cresceu em popularidade nos últimos anos. Isso ocorre por razões que incluem produtividade do desenvolvedor, suporte de biblioteca, suporte da comunidade, flexibilidade de idiomas e facilidade de aprendizado.
Java é mais popular para dispositivos móveis, android, aplicativos de desktop e aplicativos da web.
O Python é considerado a linguagem mais favorável para Machine Learning, Inteligência Artificial, IoT e muito mais.

Java é usado em Mobile, Android e Desenvolvimento Web

Python é usado em Inteligência Artificial e Machine Learning

Java é estaticamente tipado.

Python é dinamicamente tipado.

Fonte: Python vs. Java
Licença: Creative Commons -Attribution -ShareAlike 4.0 (CC-BY-SA 4.0)

sexta-feira, 29 de maio de 2020

O que é a declaração pass no Python?

O que é a declaração pass no Python?

No Python, pass é uma declaração nula. O intérprete não ignora uma declaração pass, mas nada acontece e a declaração resulta em nenhuma operação.
A declaração pass é útil quando você não escreve a implementação de uma função, mas deseja implementá-la no futuro.
Portanto, para evitar erros de compilação, você pode usar a declaração pass.

Sintaxe

A sintaxe da declaração de passe é:

Exemplo
pass

Exemplo

Escrevendo uma função sem corpo

A função addition() não tem implementação:

Exemplo
def addition(num1, num2):
  # a implementação vai aqui
  pass # declaração pass

addition(2, 2)

Ignorando uma Implementação de Instrução If

Se a instrução não tiver implementação:

Exemplo
# Essa função imprime o número na tela se não for o número 2
def display(number):
  if number is 2:
    pass # Pass statement
  else:
    print("Number: ", number)

display(2)
display(3)

Fonte: What is pass statement in Python?
Licença: Creative Commons -Attribution -ShareAlike 4.0 (CC-BY-SA 4.0)

Quais são as funções aleatórias do Python?

Quais são as funções aleatórias do Python?

Existem várias funções no Python que fornecem a capacidade de gerar números aleatórios. Todas essas funções estão presentes no módulo random que pode ser importado import random.
As três funções principais usadas para geração de números aleatórios são:

  • random()
  • randint()
  • uniform()

random()

Esta função retorna um valor aleatório de ponto flutuante entre 0 e 1.

Exemplo
import random

# Um número entre 0 e 1
num = random.random()
print(num)

# Um número entre 0 e 100
num = random.random() * 100
print(num)

# Um número entre -50 e 50
num = random.random() * 100 - 50
print(num)

randint()

A função randint aceita um intervalo e produz um número inteiro entre esse intervalo.

Exemplo
import random

# Gera um número aleatório entre 1 e 40
num = random.randint(1, 40)
print(num)

uniform()

Assim como a função randint gera um número inteiro dentro de um determinado intervalo, o método uniform faz o mesmo para números de ponto flutuante.

Exemplo
import random

# Um número de ponto flutuante entre 1 e 50
num = random.uniform(1, 50)
print(num)

Fonte: What are the Python random functions?
Licença: Creative Commons -Attribution -ShareAlike 4.0 (CC-BY-SA 4.0)

O que é uma função lambda do Python?

O que é uma função lambda do Python?

Uma função lambda é uma pequena função anônima que retorna um objeto.
O objeto retornado pela função lambda geralmente é atribuído a uma variável ou usado como parte de outras funções maiores.
Em vez da palavra-chave def convencional usada para criar funções, uma função lambda é definida usando a palavra-chave lambda. A estrutura das funções lambdas pode ser vista abaixo:

Exemplos de lambdas simples

Aqui estão alguns exemplos de lambdas em ação:

Uma função quadrática
# Uma função lambda quadrada
square = lambda n : n * n
num = square(5)
print(num)
Uma função de subtração
# Uma função lambda de subtração com vários argumentos
sub = lambda x, y : x-y
print(sub(5, 3))

O objetivo das funções lambdas

Um lambda é muito mais legível do que uma função completa, pois pode ser escrito em linha. Portanto, é uma boa prática usar lambdas quando a expressão da função é pequena.
A beleza das funções lambda reside no fato de que elas retornam objetos de função. Isso as torna úteis quando usadas com funções como a map ou filter, que exigem objetos de função como argumentos.

Função map com lambda

Lambda torna a função map mais concisa.

Função lambda
myList = [10, 25, 17, 9, 30, -5]
# Dobrar o valor de cada elemento
myList2 = map(lambda n : n*2, myList)
print(myList2)
Função normal
# O código é mais longo

def double(n):
  return n * 2

myList = [10, 25, 17, 9, 30, -5]

myList2 = map(double, myList)
print(myList2)

Filter com lambda

Semelhante à função map, a função filter pode ser simplificada com lambda.

Função lambda
myList = [10, 25, 17, 9, 30, -5]
# Filtra os elementos que não são múltiplos de 5
myList2 = filter(lambda n : n%5 == 0, myList)
print(myList2)
Função normal
def multipleOf5(n):
  if(n % 5 == 0):
    return n

myList = [10, 25, 17, 9, 30, -5]

myList2 = filter(multipleOf5, myList)
print(myList2)

Fonte: What is a Python lambda function?
Licença: Creative Commons -Attribution -ShareAlike 4.0 (CC-BY-SA 4.0)

Como obter a raiz quadrada de um número com Python

Como obter a raiz quadrada de um número com Python

Usando a função Sqrt() do módulo de matemática

  1. Importe o módulo de matemática usando import math no início do programa.
  2. Descubra a raiz quadrada do número usando o método math.sqrt(número).
  3. Observe que um erro será gera se um número negativo for passado.
Exemplo
import math

print(math.sqrt(19))
# Lança um erro se um número negativo for passado
#print (math.sqrt (-19))

Escrevendo uma função

  1. Crie uma função que aceite um argumento.
  2. Então, se o número for negativo, não retorne nada. (Números imaginários é outro tópico para outra tentativa)
  3. Agora, como uma raiz quadrada de um número é simplesmente o número aumentado para a potência 0.5, aumente o número fornecido para a potência 0.5 usando a seguinte sintaxe:
  4. numeroexpoente​​=
    numero**expoente

  5. Isso nos dará a raiz quadrada do número.
  6. Por fim, imprima o resultado para o usuário.
Exemplo
def sqrt(n):
  if n < 0:
    return
  else
:
    return n ** 0.5

print(sqrt(19))

Fonte: How to take the square root of a number in Python
Licença: Creative Commons -Attribution -ShareAlike 4.0 (CC-BY-SA 4.0)

quinta-feira, 28 de maio de 2020

O que é um perceptron de várias camadas?

O que é um perceptron de várias camadas?

Um perceptron de várias camadas ( Multi-Layered Perceptron - MLP) é um dos modelos de redes neurais mais comuns usados no campo da aprendizagem profunda (Deep Learning). Muitas vezes referida como uma rede neural "baunilha", uma MLP é mais simples que os modelos complexos da era atual. No entanto, as técnicas introduzidas abriram caminho para novas redes neurais avançadas. O perceptron multicamada (MLP) é usado para uma variedade de tarefas, como análise de ações, identificação de imagens, detecção de spam e previsões de votação nas eleições.

A estrutura básica

Um perceptron de múltiplas camadas consiste em neurônios interconectados transferindo informações um para o outro, como o cérebro humano. Cada neurônio recebe um valor. A rede pode ser dividida em três camadas principais.

Camada de entrada

Esta é a camada inicial da rede que recebe uma entrada que será usada para produzir uma saída.

Camadas ocultas

A rede precisa ter pelo menos uma camada oculta. As camadas ocultas realizam cálculos e operações nos dados de entrada para produzir algo significativo.

Camada de saída

Os neurônios nesta camada exibem uma saída significativa.

Conexões

O MLP é uma rede neural feedforward, o que significa que os dados são transmitidos da camada de entrada para a camada de saída.
As conexões entre as camadas recebem pesos atribuídos. O peso de uma conexão especifica sua importância. Esse conceito é a espinha dorsal do processo de aprendizado de um MLP.

Enquanto as entradas tiram seus valores do ambiente, os valores de todos os outros neurônios são calculados através de uma função matemática que envolve os pesos e valores da camada anterior a ela.
Por exemplo, o valor do nó h5 pode ser:

h5 = h1.w8 + h2.w9

Backpropagation

Backpropagation é uma técnica usada para otimizar os pesos de um MLP usando as saídas como entradas.
Em uma MLP convencional, pesos aleatórios são atribuídos a todas as conexões. Esses pesos aleatórios propagam valores através da rede para produzir a saída real. Naturalmente, esse resultado seria diferente do esperado. A diferença entre os dois valores é chamada de erro.
Backpropagation refere-se ao processo de enviar esse erro de volta pela rede, reajustando os pesos automaticamente para que, eventualmente, o erro entre a saída real e a esperada seja minimizado.
Dessa maneira, a saída da iteração atual se torna a entrada e afeta a próxima saída. Isso é repetido até que a saída correta seja produzida. Os pesos no final do processo seriam aqueles nos quais a rede neural funciona corretamente.

Fonte: What is a multi-layered perceptron?
Licença: Creative Commons -Attribution -ShareAlike 4.0 (CC-BY-SA 4.0)