# Why is ‘scipy.sparse.linalg.spilu’ less efficient than ‘scipy.linalg.lu’ for sparse matrix?

I posted this question on https://scicomp.stackexchange.com, but received no attention. As long as I get answer in one of them, I will inform in the other.

I have a matrix `B` which is sparse and try to utilize a function `scipy.sparse.linalg.spilu` specialized for sparse matrix to factorize `B`. Could you please explain why this function is significantly less efficient than the function `scipy.linalg.lu` for general matrix? Thank you so much!

```import numpy as np
import scipy.linalg as la
import scipy.sparse.linalg as spla
import time
from scipy import sparse
from scipy.sparse import csc_matrix
A = np.random.randint(100, size=(10000, 10000))
B = np.triu(A, -100)
start = time.time()
(P, L, U) = la.lu(B)
end = time.time()
print('Time to decompose B with lu =', end - start)
start = time.time()
mtx = spla.spilu(csc_matrix(B))
end = time.time()
print('Time to decompose B with spilu =', end - start)
```

The computation time is

```Time to decompose B with lu = 4.7765138149261475
Time to decompose B with spilu = 14.165712594985962
```

```(B==0).sum()