5 min de leitura
#6 - Matriz de dados existentes com Numpy
Neste capítulo, discutiremos como criar uma matriz a partir de dados existentes.
numpy.asarray
Essa função é semelhante ao numpy.array, exceto pelo fato de ter menos parâmetros. Essa rotina é útil para converter a sequência Python em ndarray.
numpy.asarray(a, dtype = None, order = None)
O construtor usa os seguintes parâmetros.
Nº | Parâmetro & Descrição |
---|---|
1 | a Insira dados de qualquer forma, como lista, lista de tuplas, tuplas, tupla de tuplas ou tupla de listas |
2 | dtype Por padrão, o tipo de dado de entrada é aplicado ao ndarray resultante |
3 | order C (linha principal) ou F (coluna principal). C é o padrão |
Os exemplos a seguir mostram como você pode usar a função asarray .
Exemplo 1
# converte lista para ndarray
import numpy as np
x = [1,2,3]
a = np.asarray(x)
print a
Sua saída seria a seguinte -
[1 2 3]
Exemplo 2
# seta o tipo do dado (dtype)
import numpy as np
x = [1,2,3]
a = np.asarray(x, dtype = float)
print a
Agora, a saída seria a seguinte -
[1. 2. 3.]
Exemplo 3
# ndarray da tupla
import numpy as np
x = (1,2,3)
a = np.asarray(x)
print a
Sua saída seria -
[1 2 3]
Exemplo 4
# ndarray da lista de tuplas
import numpy as np
x = [(1,2,3),(4,5)]
a = np.asarray(x)
print a
Aqui, a saída seria a seguinte -
[(1, 2, 3) (4, 5)]
numpy.frombuffer
Esta função interpreta um buffer como matriz unidimensional. Qualquer objeto que expõe a interface do buffer é usado como parâmetro para retornar um ndarray .
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
O construtor usa os seguintes parâmetros.
Nº | Parâmetro & Descrição |
---|---|
1 | buffer Qualquer objeto que expõe a interface do buffer |
2 | dtype Tipo de dados do ndarray retornado. O padrão é float |
3 | count O número de itens a serem lidos, o padrão -1 significa todos os dados |
4 | offset A posição inicial para ler. O padrão é 0 |
Exemplo
Os exemplos a seguir demonstram o uso da função frombuffer.
import numpy as np
s = 'Hello World'
a = np.frombuffer(s, dtype = 'S1')
print a
Aqui está sua saída -
['H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd']
numpy.fromiter
Essa função cria um objeto ndarray a partir de qualquer objeto iterável. Uma nova matriz unidimensional é retornada por esta função.
numpy.fromiter(iterable, dtype, count = -1)
Aqui, o construtor usa os seguintes parâmetros.
Nº | Parâmetro & Descrição |
---|---|
1 | iterable Qualquer objeto iterável |
2 | dtype Tipo de dados da matriz resultante |
3 | count O número de itens a serem lidos no iterador. O padrão é -1, o que significa que todos os dados devem ser lidos |
Os exemplos a seguir mostram como usar a função range() interna para retornar um objeto de lista. Um iterador desta lista é usado para formar um objeto ndarray.
Exemplo 1
# cria uma lista de objetos usando a função range
import numpy as np
list = range(5)
print list
Sua saída é a seguinte -
[0 1 2 3 4]
Exemplo 2
# obtem o objeto iterador da lista
import numpy as np
list = range(5)
it = iter(list)
# usa o iterador para criar o ndarray
x = np.fromiter(it, dtype = float)
print x
Agora, a saída seria a seguinte -
[0. 1. 2. 3. 4.]
Fonte traduzida com adaptações: NumPy - Array From Existing Data
Comentários