Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hughsk/ndarray-group
Wraps a group of ndarrays to return a single virtual ndarray using ndarray-proxy
https://github.com/hughsk/ndarray-group
Last synced: 12 days ago
JSON representation
Wraps a group of ndarrays to return a single virtual ndarray using ndarray-proxy
- Host: GitHub
- URL: https://github.com/hughsk/ndarray-group
- Owner: hughsk
- License: other
- Created: 2013-07-13T01:01:58.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-10-16T00:11:28.000Z (about 11 years ago)
- Last Synced: 2024-10-17T16:39:39.433Z (22 days ago)
- Language: JavaScript
- Size: 109 KB
- Stars: 4
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ndarray-group #
Wraps a group of [ndarrays](http://github.com/mikolalysenko/ndarray) to return
a single virtual ndarray using
[ndarray-proxy](http://github.com/mikolalysenko/ndarray-proxy).This should make it easy when dealing with chunked grids or voxel volumes to
compare neighboring chunks.*Note however there is a performance hit in getting/setting values with this
module*. This could hopefully become less significant with code generation,
but I'd like to wait until it's necessary before trying it.## Installation ##
``` bash
npm install ndarray-group
```## Usage ##
### `group(dims, arrays)` ###
`dims` specifies the dimensions of the group (by array as opposed to elements),
so:* `[2, 2]`: Takes four ndarrays and returns a wrapper twice as high and wide
as each child.
* `[3, 3, 3]`: Takes 27 ndarrays, this time thrice as large.
* `[2, 1, 1]`: Takes 2 ndarrays, twice as large on the X axis but otherwise
the same.`arrays` is a list of ndarrays. Each array must be the same shape, and the
list must be the correct length to fill the proxy ndarray.Arrays should be sorted in ascending order by axis, e.g.
`[-1,-1]`, `[0,-1]`, `[1,-1]`, `[-1,0]`, `[0,0]`, `[1,0]`...``` javascript
var group = require('ndarray-group')
var fill = require('ndarray-fill')
var chunks = []for (var z = 0; z < 3; z += 1)
for (var y = 0; y < 3; y += 1)
for (var x = 0; x < 3; x += 1) {
chunks.push(zeros([50, 50]))
}var grouped = group([3, 3, 3], chunks)
fill(grouped, function(x, y, z) {
return grouped.get(x, y, z) + 1
})
```