Añadir un np.array en otro np.array

publicado por: Anonymous

Estoy pasando un trabajo que tenia hecho con listas, a uno con arrays de numpy, pero no he podido agregar una lista a otra, es decir tenia mi código algo así

Matriz = []    

for i in range(10)
    punto = [uniform(Rango[0],Rango[1]) for x in range(dimensiones)]
    #Aqui hacia calculo
Matriz.append(Punto)

Esto me arrojaba una matriz [[1,2,3],[4,5,6],[7,8,9]], pero al cambiarlo con numpy me arroja todo como vector, este es el codigo

Matriz = np.array([]) #Tambien intente np.array([[]])

for i in range(10)
    punto = np.random.uniform(Rango[0], Rango[1], dimensiones)
    #Los mismos calculos
Matriz = np.append(Matriz, punto)

lo que me arroja algo parecido a esto [1,2,3,4,5,6,7,8,9], y no como quisiera, ya intente con insert, concatenate, poniendo corchetes extras pero nada, alguien sabe donde estoy mal? estaría muy agradecido. Gracias.

EDIT:
Acabo de solucionarlo haciendo una lista y agregando los arrays de numpy, y despues esa lista la paso a un array de numpy, algo asi:

lista = []
Matriz = np.array([])

for i in range(10)
    punto = np.random.uniform(Rango[0], Rango[1], dimensiones)
    #Los mismos calculos
lista.append(punto)
Matriz = np.array(lista)

Aun así si alguien sabe una manera usando numpy puro estaría mejor, quisiera usar solo estructuras de numpy

solución

Después de leer la documentación e investigar en Internet me encontré con que puedo usar una estructura vacía empty de numpy, que a pesar de estar vacía puedo definir sus dimensiones y así poder agregar un vector con row_stack y que el resultado quede como una matriz

Quedo parecido a eso

Matriz = np.empty((0,dimensiones), float)

while(True):
    for i in range(10)
        punto = np.random.uniform(Rango[0], Rango[1], dimensiones)
        #Calculo y Condicion de parada para el while

    Matriz = np.row_stack((Matriz, punto))

Esto me crea una matriz a diferencia de el metodo append que solo añadia los valores y me generaba un vector, espero sea de ayuda si alguien tiene el mismo problema.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *