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

202
Vistas
¿Cómo puedes multiplicar todos los valores dentro de un df 2D con todos los valores dentro de un df 1D por separado?

Soy nuevo en numpy y actualmente estoy trabajando en un proyecto de modelado para el que tengo que realizar algunos cálculos basados en dos fuentes de datos diferentes. Sin embargo, hasta ahora no he logrado descubrir cómo podría multiplicar todos los valores individuales entre sí:

Tengo dos marcos de datos

Un marco de datos 2D:

 df1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

Un marco de datos 1D:

 df2 = np.array([1, 2, 3, 4, 5])

Me gustaría multiplicar todos los valores individuales dentro del primer marco de datos (df1) por separado con todos los valores que se almacenan dentro del segundo marco de datos para crear un cubo de datos/nuevo marco de datos 3D que tenga la forma 5x3x3:

 df3 = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[2, 4, 6], [8, 10, 12], [14, 16, 18]], ..... ])

Probé diferentes métodos, pero cada vez fallaba en obtener algo que se pareciera a df3.

 x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) y = np.array([1, 2, 3, 4, 5]) z = y for i in range(len(z)): z.iloc[i] = x for i in range(0, 5): for j in range(0, 3): for k in range(0, 3): z.iloc[i, j, k] = y.iloc[i] * x.iloc[j, k] print(z)

¿Alguien podría ayudarme con algún código de ejemplo? ¡Gracias!

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

0

Prueba esto:

 df1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) df2 = np.array([1, 2, 3, 4, 5]) df3 = df1 * df2[:, None, None]

Producción:

 >>> df3 array([[[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9]], [[ 2, 4, 6], [ 8, 10, 12], [14, 16, 18]], [[ 3, 6, 9], [12, 15, 18], [21, 24, 27]], [[ 4, 8, 12], [16, 20, 24], [28, 32, 36]], [[ 5, 10, 15], [20, 25, 30], [35, 40, 45]]])
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