Hi Qianqian,

What is your concrete proposal for NumPy here?

Are you suggesting new methods or functions like to_json/from_json in NumPy
itself? As far as I can tell, reading/writing in your custom JSON format
already works with your jdata library.

Best,
Stephan

On Thu, Nov 25, 2021 at 2:35 PM Qianqian Fang <q.f...@neu.edu> wrote:

> Dear numpy developers,
>
> I would like to share a proposal on making ndarray JSON serializable by
> default, as detailed in this github issue:
>
> https://github.com/numpy/numpy/issues/20461
>
>
> briefly, my group and collaborators are working on a new NIH (National
> Institute of Health) funded initiative - NeuroJSON (http://neurojson.org)
> - to further disseminate a lightweight data annotation specification (
> JData
> <https://github.com/NeuroJSON/jdata/blob/master/JData_specification.md>)
> among the broad neuroimaging/scientific community. Python and numpy have
> been widely used <http://neuro.debian.net/_files/nipy-handout.pdf> in
> neuroimaging data analysis pipelines (nipy, nibabel, mne-python, PySurfer
> ... ), because N-D array is THE most important data structure used in
> scientific data. However, numpy currently does not support JSON
> serialization by default. This is one of the frequently requested features
> on github (#16432, #12481).
>
> We have developed a lightweight python modules (jdata
> <https://pypi.org/project/jdata/>, bjdata
> <https://pypi.org/project/bjdata/>) to help export/import ndarray objects
> to/from JSON (and a binary JSON format - BJData
> <https://github.com/NeuroJSON/bjdata/blob/master/Binary_JData_Specification.md>
> /UBJSON <http://ubjson.org/> - to gain efficiency). The approach is to
> convert ndarray objects to a dictionary  with subfields using standardized
> JData annotation tags. The JData spec can serialize complex data structures
> such as N-D arrays (solid, sparse, complex). trees, graphs, tables etc. It
> also permits data compression. These annotations have been implemented in
> my MATLAB toolbox - JSONLab <https://github.com/fangq/jsonlab> - since
> 2011 to help import/export MATLAB data types, and have been broadly used
> among MATLAB/GNU Octave users.
>
> Examples of these portable JSON annotation tags representing N-D arrays
> can be found at
>
>
> http://openjdata.org/wiki/index.cgi?JData/Examples/Basic#2_D_arrays_in_the_annotated_format
> http://openjdata.org/wiki/index.cgi?JData/Examples/Advanced
>
> and the detailed formats on N-D array annotations can be found in the spec:
>
>
> https://github.com/NeuroJSON/jdata/blob/master/JData_specification.md#annotated-storage-of-n-d-arrays
>
>
> our current python module to encode/decode ndarray to JSON serializable
> forms are implemented in these compact functions (handling lossless
> type/data conversion and data compression)
>
>
> https://github.com/NeuroJSON/pyjdata/blob/63301d41c7b97fc678fa0ab0829f76c762a16354/jdata/jdata.py#L72-L97
>
> https://github.com/NeuroJSON/pyjdata/blob/63301d41c7b97fc678fa0ab0829f76c762a16354/jdata/jdata.py#L126-L160
>
> We strongly believe that enabling JSON serialization by default will
> benefit the numpy user community, making it a lot easier to share complex
> data between platforms (MATLAB/Python/C/FORTRAN/JavaScript...) via a
> standardized/NIH-backed data annotation scheme.
>
> We are happy to hear your thoughts, suggestions on how to contribute, and
> also glad to set up dedicated discussions.
>
> Cheers
>
> Qianqian
> _______________________________________________
> NumPy-Discussion mailing list -- numpy-discussion@python.org
> To unsubscribe send an email to numpy-discussion-le...@python.org
> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
> Member address: sho...@gmail.com
>
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to