Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 7 - Numpy
João C. P. da Silva
Carla A. D. M. Delgado
Dept. Ciência da Computação - UFRJ
1 I n [ 1 ] : i m p o r t numpy a s np
Criando arrays:
1 I n [ 4 ] : y = np . a r r a y ( [ [ 1 , 2 , 3 ] , [ 5, 6, 7]])
2
3 In [ 5 ] : y
4 Out [ 5 ] :
5 array ([[1 , 2 , 3] ,
6 [5 , 6 , 7] ])
7
8 In [ 6 ] : y [ 0 ] # primeiro eixo
9 Out [ 6 ] : a r r a y ( [ 1 , 2 , 3 ] )
10
11 In [ 7 ] : y [ 1 ] # primeiro eixo
12 Out [ 7 ] : a r r a y ( [ 5 , 6 , 7 ] )
13
14 In [ 8 ] : y [ 0 ] [ 1 ] # se gundo e i x o
15 Out [ 8 ] : 2
16
17 In [ 9 ] : y [0 ,1] # o u t r a form a de a c e s s a r e l e m e n t o
18 Out [ 9 ] : 2
Array y = np.array ([[1, 2, 3], [5, 6, 7]]) tem dimensão (rank) 2. O primeiro eixo tem
comprimento 2, e o segundo tem comprimento 3.Pode ser visto como uma matriz 2x3
Podemos usar o comando shape para saber a forma de um array, assim como para reformatá-lo:
1 I n [ 1 ] : x = np . a r r a y ( [ 1 , 2 , 3 , 4 ] )
2
3 I n [ 2 ] : x . s h a p e # form a do a r r a y
4 Out [ 2 ] : ( 4 , )
5
6 I n [ 3 ] : y = np . a r r a y ( [ [ [ 1 , 2 , 3 , 4 ] , [ 5 , 6 , 7 , 8 ] , [ 9 , 1 0 , 1 1 , 1 2 ] ] ,
[[13 ,14 ,15 ,16] ,[17 ,18 ,19 ,20] ,[21 ,22 ,23 ,24]] ])
7
8 I n [ 4 ] : y . shape
9 Out [ 4 ] : ( 2 , 3 , 4) # p r i m e i r o e i x o = 2 , se gundo e i x o = 3 , t e r c e i r o e i x o = 4
10
11 I n [ 5 ] : y . s h a p e = ( 3 , 8) # r e f o r m a t a n d o o a r r a y
12
13 In [ 6 ] : y
14 Out [ 6 ] :
15 array ( [ [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8] ,
16 [ 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16] ,
17 [17 , 18 , 19 , 20 , 21 , 22 , 23 , 2 4 ] ] )
Podemos usar o comando shape para saber a forma de um array, assim como para reformatá-lo:
1 In [ 6 ] : y
2 Out [ 6 ] :
3 array ( [ [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8] ,
4 [ 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16] ,
5 [17 , 18 , 19 , 20 , 21 , 22 , 23 , 2 4 ] ] )
6
7 I n [ 7 ] : y . shape = ( 2 , 3 , 4)
8 Out [ 7 ] :
9 array ( [ [ [ 1 , 2 , 3 , 4] ,
10 [ 5, 6, 7, 8] ,
11 [ 9 , 10 , 11 , 1 2 ] ] ,
12
13 [ [ 1 3 , 14 , 15 , 16] ,
14 [17 , 18 , 19 , 20] ,
15 [21 , 22 , 23 , 2 4 ] ] ] )
16
17 I n [ 8 ] : y . s h a p e =( 3 , 6)
18
19 T r a c e b a c k ( most r e c e n t c a l l l a s t ) :
20 F i l e ”<i p y t h o n −i n p u t −76−397625 fb3221 >” , l i n e 1 , i n <module>
21 y . s h a p e =( 3 , 6)
22
23 V a l u e E r r o r : c a n n o t r e s h a p e a r r a y o f s i z e 24 i n t o s h a p e ( 3 , 6 )
Testando:
1 I n [ 1 ] : y = np . a r r a y ( [ [ [ 1 , 2 , 3 , 4 ] , [ 5 , 6 , 7 , 8 ] , [ 9 , 1 0 , 1 1 , 1 2 ] ] , [ [ 1 3 , 1 4 , 1 5 ,16] ,[17
,18 ,19 , 20] , [21 ,22 ,23 , 2 4 ] ] ] )
2
3 I n [ 2 ] : mediaArray ( y )
4 Out [ 2 ] : 1 2 . 5
5
6 In [ 3 ] : y
7 Out [ 3 ] :
8 array ([ 1 , 2, 3, 4, 5, 6, 7, 8, 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 ,
9 18 , 19 , 20 , 21 , 22 , 23 , 2 4 ] )
Testando:
1 I n [ 1 ] : y = np . a r r a y ( [ [ [ 1 , 2 , 3 , 4 ] , [ 5 , 6 , 7 , 8 ] , [ 9 , 1 0 , 1 1 , 1 2 ] ] , [ [13 ,14 ,15 ,16] ,[17
,18 ,19 , 20] , [21 ,22 ,23 , 2 4 ] ] ] )
2
3 I n [ 2 ] : mediaArray ( y )
4 Out [ 2 ] : 1 2 . 5
5
6 In [ 3 ] : y
7 Out [ 3 ] :
8 a r r a y ( [ [ [ 1 , 2 , 3 , 4 ] , [ 5 , 6 , 7 , 8 ] , [ 9 , 1 0 , 1 1 , 1 2 ] ] , [ [13 ,14 ,15 ,16] ,[17 ,18 ,19 ,20]
, [21 ,22 ,23 , 2 4 ] ] ] )
1 I n [ 2 ] : np . z e r o s ( ( 3 , 4 ) ) # o formato e ( 3 , 4)
2 Out [ 2 ] :
3 array ( [ [ 0. , 0. , 0. , 0.] ,
4 [ 0. , 0. , 0. , 0.] ,
5 [ 0. , 0. , 0. , 0.]])
6
7 I n [ 3 ] : np . o n e s ( ( 2 , 3 , 4 ) , d t y p e= ’ i n t 1 6 ’ ) # d t y p e pode s e r e s p e c i f i c a d o
8 Out [ 3 ] :
9 array ( [ [ [ 1 , 1 , 1 , 1] ,
10 [ 1 , 1 , 1 , 1] ,
11 [ 1, 1, 1, 1]] ,
12 [ [ 1 , 1 , 1 , 1] ,
13 [ 1 , 1 , 1 , 1] ,
14 [ 1 , 1 , 1 , 1 ] ] ] , d t y p e=i n t 1 6 )
15
16 I n [ 4 ] : np . empty ( ( 2 , 3 ) ) # a s a i d a pode v a r i a r
17 Out [ 4 ] :
18 array ( [ [ 1. , 2. , 3.] ,
19 [ 4. , 5. , 6.]])
Exercı́cio: Crie um array de inteiros de 32 bits de formato (3,2,5), onde todos os elementos são
iguais a 3.
1 I n [ 2 ] : np . z e r o s ( ( 3 , 4 ) ) # o formato e ( 3 , 4)
2 Out [ 2 ] :
3 array ( [ [ 0. , 0. , 0. , 0.] ,
4 [ 0. , 0. , 0. , 0.] ,
5 [ 0. , 0. , 0. , 0.]])
6
7 I n [ 3 ] : np . o n e s ( ( 2 , 3 , 4 ) , d t y p e= ’ i n t 1 6 ’ ) # d t y p e pode s e r e s p e c i f i c a d o
8 Out [ 3 ] :
9 array ( [ [ [ 1 , 1 , 1 , 1] ,
10 [ 1 , 1 , 1 , 1] ,
11 [ 1, 1, 1, 1]] ,
12 [ [ 1 , 1 , 1 , 1] ,
13 [ 1 , 1 , 1 , 1] ,
14 [ 1 , 1 , 1 , 1 ] ] ] , d t y p e=i n t 1 6 )
15
16 I n [ 4 ] : np . empty ( ( 2 , 3 ) ) # a s a i d a pode v a r i a r
17 Out [ 4 ] :
18 array ( [ [ 1. , 2. , 3.] ,
19 [ 4. , 5. , 6.]])
Exercı́cio: Crie um array de inteiros de 32 bits de formato (3,2,5), onde todos os elementos são
iguais a 3.
3*np.ones((3,2,5),dtype=’int32’)
1 I n [ 2 ] : a = np . a r r a y ( [ 1 , 2 , 3 , 4 ] )
2 I n [ 3 ] : b = np . a r r a y ( [ 5 , 6 , 7 , 8 ] )
3
4 In [ 4 ] : a + b
5 Out [ 4 ] : a r r a y ( [ 6 , 8 , 10 , 1 2 ] )
6
7 In [ 5 ] : a ∗ b
8 Out [ 5 ] : a r r a y ( [ 5 , 1 2 , 2 1 , 3 2 ] )
9
10 I n [ 6 ] : a + 10
11 Out [ 6 ] : a r r a y ( [ 1 1 , 1 2 , 1 3 , 1 4 ] )
12
13 I n [ 7 ] : a ∗ 10
14 Out [ 7 ] : a r r a y ( [ 1 0 , 2 0 , 3 0 , 4 0 ] )
1 I n [ 8 ] : A = np . o n e s ( ( 2 , 2) )
2 I n [ 9 ] : B = np . o n e s ( ( 2 , 2) )
3
4 In [ 1 0 ] : A + B
5 Out [ 1 0 ] :
6 array ( [ [ 2. , 2.] ,
7 [ 2. , 2.]])
8
9 I n [ 1 1 ] : A + 10
10 Out [ 1 1 ] :
11 array ( [ [ 11. , 11.] ,
12 [ 11. , 11.]])
13
14 In [ 1 2 ] : A ∗ B
15 Out [ 1 2 ] :
16 array ( [ [ 1. , 1.] ,
17 [ 1. , 1.]])
1 I n [ 2 ] : A = np . a r r a y ( [ 1 , 2 ] )
2 I n [ 3 ] : B = np . a r r a y ( [ 1 0 , 2 0 ] )
3
4 I n [ 4 ] : A . d o t (B)
5 Out [ 4 ] : 50
1 I n [ 2 ] : A = np . a r r a y ( [ [ 1 , 2 ] , [ 3 , 4 ] ] )
2 In [ 3 ] : A
3 Out [ 3 ] :
4 array ([[1 , 2] ,
5 [3 , 4] ])
6
7 I n [ 4 ] : A. dot ( [ 0 , 1 ] )
8 Out [ 4 ] : a r r a y ( [ 2 , 4 ] )
1 I n [ 2 ] : np . a r a n g e ( 1 0 , 3 0 , 5 )
2 Out [ 2 ] : a r r a y ( [ 1 0 , 1 5 , 2 0 , 2 5 ] )
3
4 I n [ 3 ] : np . a r a n g e ( 0 , 2 , 0 . 3 ) # a c e i t a a r g u m e n t o s do t i p o float
5 Out [ 3 ] : a r r a y ( [ 0 . , 0.3 , 0.6 , 0.9 , 1.2 , 1.5 , 1.8])
Faça uma função que dado um intervalo fechado [a, b] e um número de pontos n, retorna o array
x, formado pelos n pontos obtidos a partir do intervalo [a, b] e y é o array onde yi = xi2 − 9.
Exemplo
Faça uma função gera matriz que recebe como parâmetros de entrada (a, b, n, m) e que
tem como retorno um array Numpy de formato m × m, onde os elementos são os n
números igualmente espaçados obtidos ao se dividir o intervalo [a, b]. Caso não seja
possı́vel construir tal array, a função deve retornar a mensagem ’Nao e possivel
construir’.
Exemplo
Arrays 2D:
1 I n [ 7 ] : b = np . a r r a y ( [ [ 1 , 2 ] , [ 3 , 4 ] ] )
2 In [ 8 ] : b
3 Out [ 8 ] :
4 array ([[1 , 2] ,
5 [3 , 4] ])
6
7 In [ 9 ] : b [0 , 0]
8 Out [ 9 ] : 1
9
10 In [ 1 0 ] : b [0 , 1]
11 Out [ 1 0 ] : 2
1 In [ 2 ] : np . e y e ( 3 , k =1)
2 array ( [ [ 0. , 1. , 0.] ,
3 [ 0. , 0. , 1.] ,
4 [ 0. , 0. , 0.]])
1 I n [ 2 ] : A = np . a r r a y ( [ 4 , 3 , 2 , 1 ] )
2 In [ 3 ] : A
3 Out [ 3 ] : a r r a y ( [ 4 , 3 , 2 , 1 ] )
CUIDADO:
1 I n [ 2 ] : a = np . a r r a y ( [ 1 , 2 , 3 ] )
2 In [ 3 ] : a
3 Out [ 3 ] : a r r a y ( [ 1 , 2 , 3 ] )
4
5 In [ 4 ] : b = a
6 In [ 5 ] : b
7 Out [ 5 ] : a r r a y ( [ 1 , 2 , 3 ] )
8
9 I n [ 6 ] : b [ 0 ] = 4 # Mudamos o p r i m e i r o e l e m e n t o
10 In [ 7 ] : b
11 Out [ 7 ] : a r r a y ( [ 4 , 2 , 3 ] )
12
13 In [ 8 ] : a
14 Out [ 8 ] : a r r a y ( [ 4 , 2 , 3 ] ) # a r r a y a tambem e a f e t a d o p e l a mudanca
Podemos simplificar:
1 I n [ 2 ] : z = np . a r r a y ( [ 1 , 2 , 3 ] )
2
3 I n [ 3 ] : np . s i n ( z )
4 Out [ 3 ] : a r r a y ( [ 0 . 8 4 1 4 7 0 9 8 , 0.90929743 , 0.14112001])
1 i m p o r t numpy a s np
2
3 def f ( x ) :
4 i f x > 0:
5 valor = 1
6 else :
7 valor = 0
8 return valor
1 I n [ 2 ] : x = np . a r r a y ( [ 1 , −2, 3 ] )
2 In [ 3 ] : x
3 Out [ 3 ] : a r r a y ( [ 1 , −2, 3 ] )
4
5 In [ 4 ] : f (x )
6 T r a c e b a c k ( most r e c e n t c a l l l a s t ) :
7 F i l e ”<i p y t h o n −i n p u t −48−963 bfc 488912 >” , l i n e 1 , i n <module> f ( x )
8 F i l e ” /home/ j o a o / e x e r c i c i o . py ” , l i n e 6 , i n f
9 i f x > 0:
10 V a l u e E r r o r : The t r u t h v a l u e o f an a r r a y w i t h more t h a n one e l e m e n t i s am bi guous . Use a .
any ( ) o r a . a l l ( )
1 i m p o r t numpy a s np
2
3 def f ( x ) :
4 i f x > 0:
5 valor = 1
6 else :
7 valor = 0
8 return valor
João C. P. da Silva
Carla A. D. M. Delgado
Dept. Ciência da Computação - UFRJ