Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

435
Vistas
¿Hay alguna manera de envolver cada entrada de un numpy.ndarray en una matriz separada?

Estoy enfrentando algunos problemas para obtener una matriz en la forma correcta para usarla como entrada en una red neuronal convolucional:

Mi matriz tiene la forma (100,64,64) , pero necesitaría que fuera (100,64,64,1) . Me doy cuenta de que se ve un poco extraño, pero básicamente quiero empaquetar cada entrada en una matriz separada.

Un ejemplo simplificado, con una matriz 2D, donde el análogo sería de (3,3) a (3,3,1) :

 [[0,1,0], [[[0],[1],[0]], [1,1,1], [[1],[1],[1]], [0,0,1]] [[0],[0],[1]]]

¿Hay una manera conveniente de hacer esto usando numpy?

Intenté usar la función numpy.reshape : con la que sé, cómo "agregar" otra matriz que envuelve la original.

 import numpy as np data = data.reshape((1,)+data.shape)

Esto da la salida para data.shape : (1,100,64,64) . ¿Hay alguna manera de agregar una dimensión en el "extremo interno"?

Si pruebo data.reshape(data.shape+(,1)) , obtengo un error de sintaxis no válida.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Como señalan los documentos , cuando las formas son compatibles como las suyas, también puede cambiar directamente la forma de la matriz:

 a = np.array([ [0, 1, 0], [1, 1, 1], [0, 0, 1] ]) a.shape += (1,) a # array([[[0], [1], [0]], # [[1], [1], [1]], # [[0], [0], [1]]])
over 4 years ago · Santiago Trujillo Denunciar

0

Puedes remodelar usando:

 a[:,:,None]

O, programáticamente (funciona para cualquier número de dimensiones):

 a.reshape((*a.shape,1))

ejemplo

 a = np.array([[0,1,0], [1,1,1], [0,0,1]]) # array([[0, 1, 0], # [1, 1, 1], # [0, 0, 1]]) a[:,:,None] # or a.reshape((*a.shape,1)) # array([[[0], [1], [0]], # [[1], [1], [1]], # [[0], [0], [1]]])
over 4 years ago · Santiago Trujillo Denunciar

0

Puede pasar puntos suspensivos más None al indexador de matrices:

 >>> a array([[0, 1, 0], [1, 1, 1], [0, 0, 1]]) >>> a[..., None] array([[[0], [1], [0]], [[1], [1], [1]], [[0], [0], [1]]])

(Crédito a @hpaulj )

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda