dado X um array 2D com 10 linhas. Some 10 aos elementos da 1a linha, 20 aos da 2a, 30 aos da terceira e assim por diante
dado X um array 2D com 10 Colunas. Some 10 aos elementos da 1a coluna, 20 aos da 2a, 30 aos da terceira e assim por diante
dado z um array 1D. Remova de a todos os elementos negativos (retorna um novo array)
dado z um array 1D. substitua por 0 todos os elementos negativos de z
dado z um array 1D. Qual o maior valor em z
dado z um array 1D. Qual a posicao do maior valor em z
dado z um array 1D. Qual o valor em z com o maior valor absoluto? Se z = np.array([4,-5,2]), 4 é o maior valor, mas -5 é o dado com maior valor absoluto. A resposta deve ser -5 e nao 5 (eu nao quero o maior valor absoluto, eu quero o valor no array the yem o maior valor absoluto)
Dado X um array 2D, compute a soma de cada linha.
Dado X um array 2D compute a soma de cada coluna
dado X um array 2D, normalize cada linha, de forma que a soma dos valores das linhas é 1
os argumentos não precisam ter a mesmas ndim (inclusive atribuição)
a = np.array([-3,-4,-5])
X = np.array([[3,4,5],[6,7,8]])
a+2
4*X
np.array([1,2,3]) == 1
X % 2 == 0
Os argumentos não precisam tem o mesmo tamanho em cada uma das dimensões - esse tamanho pode ser 1.
a1 = np.array([100,200])
a2 = np.array([[10,20,30]]
X.shape
a1.shape
a2.shape
X + a1
X+ a2
é um atributo(?) e nao um metodo
np.info(X)
Y = X.T
np.info(Y)
data
nas o continous
passa a ser
falso e nao pode ser usado por bibliotecas de baixo novel de algebra
linearVeja o link para o standard library
Pacotes externos - requer instalacao pip
ou
conda
A interface para os modulos é normalmente através de objetos.
Mas nem sempre - todas as funções em math
e algumas no
scipy
são funções e não objetos/métodos
Programas externos uteis
lambda
mas a funcao so pode ter 1 linha
lambda x : x > 0
map(lambda x : x+3, [4,5,6,7])
filter(lambda x: x>0, [4,-5,6,-7])
mas use o list comprehension em vez de map+filter
foldl:
from functools import reduce
reduce(combinacao, lista, inicial)
key: uma funçao que é aplicada em cada elemento e cujo valor é usado na computação
max( iteratable, key=func)
list.sort(key=func)
sorted( iteratable, key=func)
max(lista,key=func)
=
max([(func(x),x) for x in lista])[1]
x[i]
ou x['chave']
ou x.chave
podem ser convertidos em funções para o argumento x
itemgetter
- f = itemgetter(2)
entao
f(x)
retorna x[2]
f = itemgetter(2,3,5)
entao f(x)
retorna (x[2],x[3],x[5])
attrgetter
- f = attrgetter("chave")
entao f(x)
retorna x.chave
em python modulo pbd
https://docs.python.org/3/library/pdb.html
>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
ou
python3 -m pdb meuprog.py
Exemplo https://realpython.com/python-debugging-pdb/
video https://www.youtube.com/watch?v=6RkGmqcfiTw
interrompe a execução e entra no modo debug
coloque
breakpoint()
na linha do código.
ou (isso é o que realmente acontece)
import pdb; pdb.set_trace()
o prompt muda para (pdb)
antes da execução de uma linha de codigo
executa ate a proxima linha da mesma função
--> m = func(4)
proc(m+5)
next
executa m=func(4)
e vai para antes de
proc(m+4)
entra no debug da proxima função na execução, nesse caso entra e para
na 1a linha de func
roda normalmente até o fim do programa ou ate o proximo breakpoint
print
var
interact
cria um REPL neste ponto (com acesso a
variáveis locais)
é possivel trocar o valor de variaveis locais e continuar a execução usando os novos valores
up (função que chamou) e down
variável x
isinstance(x, str)
ou
type(x) is srt
https://www.python.org/dev/peps/pep-0484/
def soma(x: int, y: int):
mas ok rodar
soma('3','4')
vc precisa rodar usando um interpretador estendido
mypy
voce precisa de uma linguagem para definir tipos complexos e é isso que o PEP define
int
e float
str
Extensões tipo C do python https://cython.org/
Veja a função Primes em https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html
curso sobre cython https://nyu-cds.github.io/python-cython/
Ha poucos sites discutindo cython + numpy