Saltar al contenido

Cómo agregar un vector a una matriz en Python

Te traemos la contestación a esta problema, o por lo menos eso deseamos. Si tienes dudas coméntalo, que para nosotros será un gusto responderte

Solución:

Estas buscando np.r_ y np.c_. (Piense en “pila de columnas” y “pila de filas” (que también son funciones) pero con generaciones de rango de estilo matlab).

Ver también np.concatenate, np.vstack, np.hstack, np.dstack, np.row_stack, np.column_stack etc.

Por ejemplo:

import numpy as np
m = np.zeros((10, 4))
v = np.ones((10, 1))
c = np.c_[m, v]

Rendimientos:

array([[ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.]])

Esto también es equivalente a np.hstack([m, v]) o np.column_stack([m, v])

Si no vienes de matlab, hstack y column_stack probablemente parezca mucho más legible y descriptivo. (Y podría decirse que son mejores en este caso por esa razón).

Sin embargo, np.c_ y np.r_ tienen una funcionalidad adicional que la gente que viene de matlab suele esperar. Por ejemplo:

In [7]: np.r_[1:5, 2]
Out[7]: array([1, 2, 3, 4, 2])

O:

In [8]: np.c_[m, 0:10]
Out[8]:
array([[ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  2.],
       [ 0.,  0.,  0.,  0.,  3.],
       [ 0.,  0.,  0.,  0.,  4.],
       [ 0.,  0.,  0.,  0.,  5.],
       [ 0.,  0.,  0.,  0.,  6.],
       [ 0.,  0.,  0.,  0.,  7.],
       [ 0.,  0.,  0.,  0.,  8.],
       [ 0.,  0.,  0.,  0.,  9.]])

En cualquier caso, para la gente de matlab, es útil conocer np.r_ y np.c_ además de vstack, hstacketc.

En numpy es similar:

>>> m=np.zeros((10,4))
>>> m
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])
>>> v=np.ones((10,1))
>>> v
array([[ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.]])

>>> np.c_[m,v]
array([[ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.],
       [ 0.,  0.,  0.,  0.,  1.]])

Puedes reafirmar nuestro cometido ejecutando un comentario y dejando una puntuación te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *