Add column to a sparse matrix Add column to a sparse matrix python-3.x python-3.x

Add column to a sparse matrix


The sparse.hstack used in @Paul Panzer's link is the simplest.

In [760]: sparse.hstack((sp,np.array([7,7,7])[:,None])).AOut[760]: array([[1, 0, 2, 7],       [0, 0, 3, 7],       [4, 5, 6, 7]], dtype=int32)

sparse.hstack is not complicated; it just calls bmat([blocks]).

sparse.bmat gets the coo attributes of all the blocks, joins them with the appropriate offself, and builds a new coo_matrix.

In this case it joins

In [771]: print(sp)  (0, 0)    1  (0, 2)    2  (1, 2)    3  (2, 0)    4  (2, 1)    5  (2, 2)    6In [772]: print(sparse.coo_matrix(np.array([7,7,7])[:,None]))  (0, 0)    7  (1, 0)    7  (2, 0)    7

while changing the column numbers of the last to 3.

In [761]: print(sparse.hstack((sp,np.array([7,7,7])[:,None])))  (0, 0)    1  (0, 2)    2  (1, 2)    3  (2, 0)    4  (2, 1)    5  (2, 2)    6  (0, 3)    7  (1, 3)    7  (2, 3)    7