You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-23Lines changed: 11 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,26 +6,24 @@
6
6
7
7
## Overview
8
8
9
-
`NDimensionalSparseArrays.jl` provides a `NDSparseArray` type that efficiently stores and manipulates n-dimensional arrays with a high proportion of zero elements. Unlike dense arrays, `NDSparseArray` only stores non-zero values, significantly reducing memory consumption for sparse data.
10
-
11
-
This package is designed to be a flexible and intuitive tool for scientific computing, data analysis, and any domain where large, sparse n-dimensional data structures are common.
9
+
`NDimensionalSparseArrays.jl` provides an efficient `NDSparseArray` type for working with sparse, n-dimensional arrays. It is designed to store and manipulate arrays with a high proportion of zero elements, reducing memory consumption significantly compared to dense arrays. The package is dependency-free, making it lightweight and easy to integrate into various projects.
12
10
13
11
## Features
14
12
15
-
-**Memory Efficiency:** Only non-zero elements are stored, making it ideal for high-dimensional sparse data.
16
-
-**Arbitrary Dimensionality:** Create sparse arrays of any number of dimensions.
17
-
-**Intuitive Indexing:** Use standard Julia indexing to access and modify elements.
18
-
-**Comprehensive API:** A rich set of functions for creating, manipulating, and analyzing sparse arrays.
19
-
-**Interoperability:** Easily convert between `NDSparseArray`and dense `Array` types.
-**Memory Efficiency**: Stores only non-zero elements, ideal for high-dimensional sparse data.
14
+
-**Arbitrary Dimensionality**: Handles sparse arrays in any number of dimensions.
15
+
-**No Dependencies**: The package is self-contained, with no external dependencies, ensuring a minimal footprint.
16
+
-**Intuitive Indexing**: Uses standard Julia array indexing for easy access and modification.
17
+
-**Flexible API**: A rich set of functions for creating, manipulating, and analyzing sparse arrays.
18
+
-**Interoperability**: Seamlessly convert between sparse and dense array types.
21
19
22
20
## Comparison with `SparseArrays.jl`
23
21
24
-
`NDimensionalSparseArrays.jl` is designed to provide a flexible and easy-to-use interface for N-dimensional sparse arrays. While Julia's standard library [`SparseArrays.jl`](https://github.com/JuliaSparse/SparseArrays.jl) is highly optimized for 1-D and 2-D sparse arrays (vectors and matrices), `NDimensionalSparseArrays.jl`offers a more general-purpose solution for higher-dimensional sparse data. Key differences include:
22
+
While `SparseArrays.jl` is highly optimized for 1D and 2D sparse arrays (vectors and matrices), `NDimensionalSparseArrays.jl`supports sparse data in **n**-dimensions, providing a more flexible and convenient solution for higher-dimensional use cases. Key differences include:
25
23
26
-
-**Dimensionality:**`SparseArrays.jl`focuses on `SparseVector`and `SparseMatrixCSC`. `NDimensionalSparseArrays.jl`is built from the ground up for N-dimensional arrays.
27
-
-**Storage Format:**`NDimensionalSparseArrays.jl` uses a dictionary-based storage (`Dict{CartesianIndex{N}, T}`), which is flexible for arbitrary dimensions. `SparseArrays.jl` uses the more rigid but highly efficient Compressed Sparse Column (CSC) format for matrices.
28
-
-**Use Case:** If you are working with 1-D or 2-D sparse arrays and require high-performance linear algebra operations, `SparseArrays.jl`is the ideal choice. If you need to work with sparse data in three or more dimensions, `NDimensionalSparseArrays.jl` provides a more natural and convenient API.
24
+
-**Dimensionality**:`SparseArrays.jl`is limited to 1D and 2D arrays, whereas `NDimensionalSparseArrays.jl`supports arbitrary-dimensional sparse arrays.
25
+
-**Storage Format**: Uses a dictionary-based storage format (`Dict{CartesianIndex{N}, T}`) suitable for any dimensionality, while `SparseArrays.jl` uses Compressed Sparse Column (CSC) format for matrices.
26
+
-**Use Case**: Best for working with higher-dimensional sparse arrays, while `SparseArrays.jl`excels in linear algebra operations for 1D and 2D sparse arrays.
0 commit comments