# Sparse Array Sum along axis

**URL:** <https://discourse.julialang.org/t/sparse-array-sum-along-axis/27054>\
**Category:** General Usage\
**Created:** [July 31, 2019, 10:50pm UTC](https://discourse.julialang.org/t/sparse-array-sum-along-axis/27054 "2019-07-31T22:50:13Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Paul\_McVay](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paul_mcvay/32/4307_2.png) [@Paul\_McVay](https://discourse.julialang.org/u/Paul_McVay)\
**Post date:** [July 31, 2019, 10:50pm UTC](https://discourse.julialang.org/t/sparse-array-sum-along-axis/27054/1 "2019-07-31T22:50:14Z")

</div>

Does sum along a dimensional axis not work with sparse arrays?

```julia
a = sparse([1,2,3], [1,2,3], [1, 1, 2])
sum(a, 1)

```

```julia
ERROR: MethodError: objects of type SparseMatrixCSC{Int64,Int64} are not callable
Use square brackets [] for indexing an Array.
Stacktrace:
 [1] mapreduce_first(::SparseMatrixCSC{Int64,Int64}, ::Function, ::Int64) at ./reduce.jl:297
 [2] mapreduce(::SparseMatrixCSC{Int64,Int64}, ::Function, ::Int64) at ./reduce.jl:324
 [3] sum(::SparseMatrixCSC{Int64,Int64}, ::Int64) at ./reduce.jl:399
 [4] top-level scope at none:0

```

---

<div class="post-metadata">

**Author:** ![oliver](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oliver/32/19264_2.png) [@oliver](https://discourse.julialang.org/u/oliver)\
**Post date:** [July 31, 2019, 10:58pm UTC](https://discourse.julialang.org/t/sparse-array-sum-along-axis/27054/2 "2019-07-31T22:58:37Z")

</div>

What do you expect the output to be? I find:

```julia
julia> sum(a[1,:])
1

```

---

<div class="post-metadata">

**Author:** ![Paul\_McVay](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paul_mcvay/32/4307_2.png) [@Paul\_McVay](https://discourse.julialang.org/u/Paul_McVay)\
**Post date:** [July 31, 2019, 11:05pm UTC](https://discourse.julialang.org/t/sparse-array-sum-along-axis/27054/3 "2019-07-31T23:05:56Z")

</div>

Apparently, you need the dims keyword in the argument. E.g.

```julia
sum(a, dims = 1)

```

```julia
1×3 Array{Int64,2}:
 1 1 2

```

---

<div class="post-metadata">

**Author:** ![oliver](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oliver/32/19264_2.png) [@oliver](https://discourse.julialang.org/u/oliver)\
**Post date:** [August 1, 2019, 1:25am UTC](https://discourse.julialang.org/t/sparse-array-sum-along-axis/27054/4 "2019-08-01T01:25:10Z")

</div>

FWIW

```julia
julia> sum(a[:])
4

```

I wasn’t sure which diagonal you were interested in.
