Skip to content Skip to sidebar Skip to footer

Add Column To A Sparse Matrix

When I execute the following code I get a spares matrix: import numpy as np from scipy.sparse import csr_matrix row = np.array([0, 0, 1, 2, 2, 2]) col = np.array([0, 2, 2, 0, 1, 2

Solution 1:

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

In [760]: sparse.hstack((sp,np.array([7,7,7])[:,None])).A
Out[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)    6
In [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

Post a Comment for "Add Column To A Sparse Matrix"