Existe uma maneira de inicializar uma matriz numpy de uma forma e adicionar a ela? Vou explicar o que preciso com um exemplo de lista. Se eu quiser criar uma lista de objetos gerados em um loop, eu posso fazer:
a = []
for i in range(5):
a.append(i)
Eu quero fazer algo semelhante com uma matriz numpy. Eu sei sobre vstack, concatenar etc. No entanto, parece que estes requerem duas matrizes numpy como entradas. O que eu preciso é:
big_array # Initially empty. This is where I don't know what to specify
for i in range(5):
array i of shape = (2,4) created.
add to big_array
O big_array
deve ter uma forma (10,4)
. Como fazer isso?
EDITAR:
Quero adicionar o seguinte esclarecimento. Estou ciente de que posso definir big_array = numpy.zeros((10,4))
e preenchê-lo. No entanto, isso requer a especificação antecipada do tamanho do big_array. Eu sei o tamanho neste caso, mas e se eu não? Quando usamos a .append
função para estender a lista em python, não precisamos conhecer seu tamanho final com antecedência. Gostaria de saber se existe algo semelhante para criar uma matriz maior a partir de matrizes menores, começando com uma matriz vazia.
x = numpy.array()
exatamente como faríamos com uma lista como y = []
; mas não funcionou
[i for i in range(5)]
. (Equivalentemente:,list(range(5))
embora este seja um exemplo artificial.) #