Let’s check CRS (Compressed Row Storage) in Python NumPy.
[yuy121@cyberstar: ~]# module list
Currently Loaded Modulefiles:
1) realvnc/4.5r21561 2) java/1.6.0_20 3) intel/11.1.073 4) pgi/10.9
Load Python module.
[yuy121@cyberstar: ~]# module load python
[yuy121@cyberstar: ~]# module list
Currently Loaded Modulefiles:
1) realvnc/4.5r21561 6) gmp/5.0.1 11) gcc/4.5.0
2) java/1.6.0_20 7) mpfr/2.4.2 12) openmpi/gnu/1.4.2
3) intel/11.1.073 8) ppl/0.10.2 13) python/2.6.5
4) pgi/10.9 9) cloog-ppl/0.15.9
5) mkl/10.2.4.032 10) mpc/0.8.1
[yuy121@cyberstar: ~]# python
Python 2.6.5 (r265:79063, Jul 14 2011, 09:22:34)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Check CSR format in NumPy.
value |
1 |
1 |
2 |
3 |
4 |
5 |
7 |
col_ind |
0 |
1 |
2 |
0 |
1 |
0 |
2 |
row_ptr |
0 |
3 |
5 |
7 |
7 |
Python 2.6.5 (r265:79063, Jul 14 2011, 09:22:34)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from numpy import array, matrix
>>> from scipy.sparse import csr_matrix
>>> A=[[1, 1, 2], [3, 4, 0], [5, 0, 7], [0, 0, 0]]
>>> c = csr_matrix(A)
>>> c
<4x3 sparse matrix of type '<type 'numpy.int64'>'
with 7 stored elements in Compressed Sparse Row format>
>>> c.__dict__
{'format': 'csr',
'_shape': (4, 3),
'indptr': array([0, 3, 5, 7, 7], dtype=int32),
'indices': array([0, 1, 2, 0, 1, 0, 2], dtype=int32),
'maxprint': 50,
'data': array([1, 1, 2, 3, 4, 5, 7])}
>>> c.data
array([1, 1, 2, 3, 4, 5, 7])
>>> c.indices
array([0, 1, 2, 0, 1, 0, 2], dtype=int32)
>>> c.indptr
array([0, 3, 5, 7, 7], dtype=int32)