In [1]:
# Versão da Linguagem Python
from platform import python_version
print('Versão da Linguagem Python Usada Neste Jupyter Notebook:', python_version())
Para importar numpy, utilize: import numpy as np
Você também pode utilizar: from numpy import * . Isso evitará a utilização de np., mas este comando importará todos os módulos do NumPy.
Para atualizar o NumPy, abra o prompt de comando e digite: pip install numpy -U
In [2]:
# Importando o NumPy
import numpy as np
In [3]:
np.__version__
Out[3]:
In [4]:
# Help
help(np.array)
In [5]:
# Array criado a partir de uma lista:
vetor1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])
In [6]:
print(vetor1)
In [7]:
# Um objeto do tipo ndarray é um recipiente multidimensional de itens do mesmo tipo e tamanho.
type(vetor1)
Out[7]:
In [8]:
# Usando métodos do array NumPy
vetor1.cumsum()
Out[8]:
In [9]:
# Criando uma lista. Perceba como listas e arrays são objetos diferentes, com diferentes propriedades
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8]
In [10]:
lst
Out[10]:
In [11]:
type(lst)
Out[11]:
In [12]:
# Imprimindo na tela um elemento específico no array
vetor1[0]
Out[12]:
In [13]:
# Alterando um elemento do array
vetor1[0] = 100
In [14]:
print(vetor1)
In [15]:
# Não é possível incluir elemento de outro tipo
vetor1[0] = 'Novo elemento'
In [16]:
# Verificando o formato do array
print(vetor1.shape)
In [17]:
# A função arange cria um vetor contendo uma progressão aritmética a partir de um intervalo - start, stop, step
vetor2 = np.arange(0., 4.5, .5)
In [18]:
print(vetor2)
In [19]:
# Verificando o tipo do objeto
type(vetor2)
Out[19]:
In [20]:
# Formato do array
np.shape(vetor2)
Out[20]:
In [21]:
print (vetor2.dtype)
In [22]:
x = np.arange(1, 10, 0.25)
print(x)
In [23]:
print(np.zeros(10))
In [24]:
# Retorna 1 nas posições em diagonal e 0 no restante
z = np.eye(3)
In [25]:
z
Out[25]:
In [26]:
# Os valores passados como parâmetro, formam uma diagonal
d = np.diag(np.array([1, 2, 3, 4]))
In [27]:
d
Out[27]:
In [28]:
# Array de números complexos
c = np.array([1+2j, 3+4j, 5+6*1j])
In [29]:
c
Out[29]:
In [30]:
# Array de valores booleanos
b = np.array([True, False, False, True])
In [31]:
b
Out[31]:
In [32]:
# Array de strings
s = np.array(['Python', 'R', 'Julia'])
In [33]:
s
Out[33]:
In [34]:
# O método linspace (linearly spaced vector) retorna um número de
# valores igualmente distribuídos no intervalo especificado
np.linspace(0, 10)
Out[34]:
In [35]:
print(np.linspace(0, 10, 15))
In [36]:
print(np.logspace(0, 5, 10))
In [37]:
# Criando uma matriz
matriz = np.array([[1,2,3],[4,5,6]])
In [38]:
print(matriz)
In [39]:
print(matriz.shape)
In [40]:
# Criando uma matriz 2x3 apenas com números "1"
matriz1 = np.ones((2,3))
In [41]:
print(matriz1)
In [42]:
# Criando uma matriz a partir de uma lista de listas
lista = [[13,81,22], [0, 34, 59], [21, 48, 94]]
In [43]:
# A função matrix cria uma matria a partir de uma sequência
matriz2 = np.matrix(lista)
In [44]:
matriz2
Out[44]:
In [45]:
type(matriz2)
Out[45]:
In [46]:
# Formato da matriz
np.shape(matriz2)
Out[46]:
In [47]:
matriz2.size
Out[47]:
In [48]:
print(matriz2.dtype)
In [49]:
matriz2.itemsize
Out[49]:
In [50]:
matriz2.nbytes
Out[50]:
In [51]:
print(matriz2[2,1])
In [52]:
# Alterando um elemento da matriz
matriz2[1,0] = 100
In [53]:
matriz2
Out[53]:
In [54]:
x = np.array([1, 2]) # NumPy decide o tipo dos dados
y = np.array([1.0, 2.0]) # NumPy decide o tipo dos dados
z = np.array([1, 2], dtype=np.float64) # Forçamos um tipo de dado em particular
print (x.dtype, y.dtype, z.dtype)
In [55]:
matriz3 = np.array([[24, 76], [35, 89]], dtype=float)
In [56]:
matriz3
Out[56]:
In [57]:
matriz3.itemsize
Out[57]:
In [58]:
matriz3.nbytes
Out[58]:
In [59]:
matriz3.ndim
Out[59]:
In [60]:
matriz3[1,1]
Out[60]:
In [61]:
matriz3[1,1] = 100
In [62]:
matriz3
Out[62]:
In [63]:
print(np.random.rand(10))
In [64]:
import matplotlib.pyplot as plt
%matplotlib inline
In [65]:
import matplotlib as mat
mat.__version__
Out[65]:
In [66]:
print(np.random.rand(10))
In [67]:
plt.show((plt.hist(np.random.rand(1000))))
In [68]:
print(np.random.randn(5,5))
In [69]:
plt.show(plt.hist(np.random.randn(1000)))
In [70]:
imagem = np.random.rand(30, 30)
plt.imshow(imagem, cmap = plt.cm.hot)
plt.colorbar()
Out[70]:
In [71]:
import os
filename = os.path.join('iris.csv')
In [72]:
# No Windows use !more iris.csv. Mac ou Linux use !head iris.csv
!head iris.csv
#!more iris.csv
In [73]:
# Carregando um dataset para dentro de um array
arquivo = np.loadtxt(filename, delimiter=',', usecols=(0,1,2,3), skiprows=1)
print (arquivo)
In [74]:
type(arquivo)
Out[74]:
In [75]:
# Gerando um plot a partir de um arquivo usando o NumPy
var1, var2 = np.loadtxt(filename, delimiter=',', usecols=(0,1), skiprows=1, unpack=True)
plt.show(plt.plot(var1, var2, 'o', markersize=8, alpha=0.75))
In [76]:
# Criando um array
A = np.array([15, 23, 63, 94, 75])
In [77]:
# Em estatística a média é o valor que aponta para onde mais se concentram os dados de uma distribuição.
np.mean(A)
Out[77]:
In [78]:
# O desvio padrão mostra o quanto de variação ou "dispersão" existe em
# relação à média (ou valor esperado).
# Um baixo desvio padrão indica que os dados tendem a estar próximos da média.
# Um desvio padrão alto indica que os dados estão espalhados por uma gama de valores.
np.std(A)
Out[78]:
In [79]:
# Variância de uma variável aleatória é uma medida da sua dispersão
# estatística, indicando "o quão longe" em geral os seus valores se
# encontram do valor esperado
np.var(A)
Out[79]:
In [80]:
d = np.arange(1, 10)
In [81]:
d
Out[81]:
In [82]:
np.sum(d)
Out[82]:
In [83]:
# Retorna o produto dos elementos
np.prod(d)
Out[83]:
In [84]:
# Soma acumulada dos elementos
np.cumsum(d)
Out[84]:
In [85]:
a = np.random.randn(400,2)
m = a.mean(0)
print (m, m.shape)
In [86]:
plt.plot(a[:,0], a[:,1], 'o', markersize=5, alpha=0.50)
plt.plot(m[0], m[1], 'ro', markersize=10)
plt.show()
In [87]:
# Slicing
a = np.diag(np.arange(3))
In [88]:
a
Out[88]:
In [89]:
a[1, 1]
Out[89]:
In [90]:
a[1]
Out[90]:
In [91]:
b = np.arange(10)
In [92]:
b
Out[92]:
In [93]:
# [start:end:step]
b[2:9:3]
Out[93]:
In [94]:
# Comparação
a = np.array([1, 2, 3, 4])
b = np.array([4, 2, 2, 4])
a == b
Out[94]:
In [95]:
np.array_equal(a, b)
Out[95]:
In [96]:
a.min()
Out[96]:
In [97]:
a.max()
Out[97]:
In [98]:
# Somando um elemento ao array
np.array([1, 2, 3]) + 1.5
Out[98]:
In [99]:
# Usando o método around
a = np.array([1.2, 1.5, 1.6, 2.5, 3.5, 4.5])
In [100]:
b = np.around(a)
In [101]:
b
Out[101]:
In [102]:
# Criando um array
B = np.array([1, 2, 3, 4])
In [103]:
B
Out[103]:
In [104]:
# Copiando um array
C = B.flatten()
In [105]:
C
Out[105]:
In [106]:
# Criando um array
v = np.array([1, 2, 3])
In [107]:
# Adcionando uma dimensão ao array
v[:, np.newaxis], v[:,np.newaxis].shape, v[np.newaxis,:].shape
Out[107]:
In [108]:
# Repetindo os elementos de um array
np.repeat(v, 3)
Out[108]:
In [109]:
# Repetindo os elementos de um array
np.tile(v, 3)
Out[109]:
In [110]:
# Criando um array
w = np.array([5, 6])
In [111]:
# Concatenando
np.concatenate((v, w), axis=0)
Out[111]:
In [112]:
# Copiando arrays
r = np.copy(v)
In [113]:
r
Out[113]:
Conheça a Formação Cientista de Dados, um programa completo, 100% online e 100% em português, com mais de 400 horas de carga horária, mais de 1.200 aulas em vídeos e 26 projetos, que vão ajudá-lo a se tornar um dos profissionais mais cobiçados do mercado de análise de dados. Clique no link abaixo, faça sua inscrição, comece hoje mesmo e aumente sua empregabilidade:
https://www.datascienceacademy.com.br/pages/formacao-cientista-de-dados