# dgl.sparse.SparseMatrix.smeanο

SparseMatrix.smean(dim: = None)ο

Computes the mean of non-zero values of the `input` sparse matrix along the given dimension `dim`.

The reduction does not count zero values. If the row or column to be reduced does not have any non-zero value, the result will be 0.

Parameters:
• input (SparseMatrix) β The input sparse matrix

• dim (int, optional) β

The dimension to reduce, must be either 0 (by rows) or 1 (by columns) or None (on both rows and columns simultaneously)

If `dim` is None, it reduces both the rows and the columns in the sparse matrix, producing a tensor of shape `input.val.shape[1:]`. Otherwise, it reduces on the row (`dim=0`) or column (`dim=1`) dimension, producing a tensor of shape `(input.shape[1],) + input.val.shape[1:]` or `(input.shape[0],) + input.val.shape[1:]`.

Returns:

Reduced tensor

Return type:

torch.Tensor

Examples

Case1: scalar-valued sparse matrix

```>>> indices = torch.tensor([[0, 1, 1], [0, 0, 2]])
>>> val = torch.tensor([1., 1., 2.])
>>> A = dglsp.spmatrix(indices, val, shape=(4, 3))
>>> dglsp.smean(A)
tensor(1.3333)
>>> dglsp.smean(A, 0)
tensor([1., 0., 2.])
>>> dglsp.smean(A, 1)
tensor([1.0000, 1.5000, 0.0000, 0.0000])
```

Case2: vector-valued sparse matrix

```>>> indices = torch.tensor([[0, 1, 1], [0, 0, 2]])
>>> val = torch.tensor([[1., 2.], [2., 1.], [2., 2.]])
>>> A = dglsp.spmatrix(indices, val, shape=(4, 3))
>>> dglsp.smean(A)
tensor([1.6667, 1.6667])
>>> dglsp.smean(A, 0)
tensor([[1.5000, 1.5000],
[0.0000, 0.0000],
[2.0000, 2.0000]])
>>> dglsp.smean(A, 1)
tensor([[1.0000, 2.0000],
[2.0000, 1.5000],
[0.0000, 0.0000],
[0.0000, 0.0000]])
```