sys:1: MatplotlibDeprecationWarning: The 'warn' parameter of use() is deprecated since Matplotlib 3.1 and will be removed in 3.3. If any parameter follows 'warn', they should be pass as keyword, not positionally.
Integer test
For testing, we create a 1000x10 array, which is typical in our use cases. This could represent the result of a 1s simulation with 10 units and 1ms time bins.
A =
[[8 2 1 ... 5 6 3]
[0 5 0 ... 0 6 2]
[1 5 8 ... 1 6 4]
...
[3 3 5 ... 5 5 1]
[6 6 8 ... 5 3 3]
[3 6 2 ... 7 5 1]]
Length of the unencoded byte sequences:
no compression : 80128
zlib compressed : 7196
blosc compressed: 10150
Length of base64 encoded bytes:
no compression : 106840 — b'k05VTVBZAQ'
zlib compressed : 9596 — b'eJyd2ssS5L'
blosc compressed: 13536 — b'AgEBCIA4AQ'
Length of base85 encoded bytes: (First 10 encoded caracters shown)
no compression : 100160 — b'lTKAlP+0*0'
zlib compressed : 8995 — b'c$}Tu%M#?a'
blosc compressed: 12688 — b'0s#RCfH(mF'
zlib compression: 61.148ms ± 0.138ms
blosc compression: 2.843ms ± 0.034ms
Floating-point test
We use the same sized array as in above, again with values within \([0,10)\), but this time with floats.
A =
[[3.06494772 5.63011501 8.80872879 ... 4.19862322 8.46604461 9.28346815]
[2.82931997 3.8741498 3.18255026 ... 0.68741562 5.25392405 0.76466769]
[7.42212217 4.98484434 8.98859852 ... 6.32017619 7.81633824 5.96741584]
...
[7.3292064 4.57112954 4.36508642 ... 0.24867652 7.51388454 1.5938669 ]
[6.92609606 3.3784268 7.78978262 ... 6.15603552 0.85188765 4.90133344]
[9.1425061 7.12119729 9.41918639 ... 2.12476174 8.11798919 7.61706681]]
Length of the unencoded byte sequences:
no compression : 80128
zlib compressed : 76293
blosc compressed: 73540
Length of base64 encoded bytes:
no compression : 106840 — b'k05VTVBZAQ'
zlib compressed : 101724 — b'eJwUl3k01G'
blosc compressed: 98056 — b'AgEBCIA4AQ'
Length of base85 encoded bytes: (First 10 encoded caracters shown)
no compression : 100160 — b'lTKAlP+0*0'
zlib compressed : 95367 — b'c$^fMc{J2-'
blosc compressed: 91925 — b'0s#RCfH(mF'
zlib compression: 84.534ms ± 0.460ms
blosc compression: 3.151ms ± 0.026ms
LS0tCnRpdGxlOiAiTnVtcHkgc2VyaWFsaXphdGlvbiB0ZXN0cyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3B5dGhvbn0KaW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBpbwppbXBvcnQgYmFzZTY0CmltcG9ydCB6bGliCmltcG9ydCBibG9zYwppbXBvcnQgdGltZWl0CgpjbGFzcyBDb21wcmVzc2VkQXJyYXk6CiAgZGVmIF9faW5pdF9fKHNlbGYsIEEgOm5wLm5kYXJyYXksICoqYmxvc2Nfa3dzKToKICAgIHNlbGYuYmxvc2Nfa3dzID0gYmxvc2Nfa3dzCiAgICBmID0gaW8uQnl0ZXNJTygpCiAgICBucC5zYXZlKGYsIEEpCiAgICBzZWxmLkFieXRlcyA9IGYuZ2V0dmFsdWUoKQogICAgc2VsZi56QWJ5dGVzID0gemxpYi5jb21wcmVzcyhBKQogICAgc2VsZi5iQWJ5dGVzID0gYmxvc2MuY29tcHJlc3MoQSwgKipibG9zY19rd3MpCiAgICAKICBkZWYgY29tcHJlc3Npb25fdGltZXMoc2VsZiwgcmVwZWF0PTMsIG51bWJlcj0xMCwKICAgICAgICAgICAgICAgICAgICAgICAgemxpYj16bGliLCBibG9zYz1ibG9zYyk6ICAjIEJpbmQgdG8gbG9jYWwgbmFtZXNwYWNlCiAgICBBYnl0ZXMgPSBzZWxmLkFieXRlcwogICAgenRhc2sgPSAiemxpYi5jb21wcmVzcyhBYnl0ZXMpIgogICAgaWYgbGVuKHNlbGYuYmxvc2Nfa3dzKSA9PSAwOgogICAgICBidGFzayA9ICJibG9zYy5jb21wcmVzcyhBYnl0ZXMpIgogICAgZWxzZToKICAgICAgYmt3cyA9ICIsIi5qb2luKGYie2t9PXt2fSIgZm9yIGssdiBpbiBzZWxmLmJsb3NjX2t3cy5pdGVtcygpKQogICAgICBidGFzayA9IGYiYmxvc2MuY29tcHJlc3MoQWJ5dGVzLCB7Ymt3c30pIgogICAgenRpbWluZ3MgPSB0aW1laXQucmVwZWF0KHp0YXNrLCByZXBlYXQ9cmVwZWF0LCBudW1iZXI9bnVtYmVyLCBnbG9iYWxzPWxvY2FscygpKQogICAgYnRpbWluZ3MgPSB0aW1laXQucmVwZWF0KGJ0YXNrLCByZXBlYXQ9cmVwZWF0LCBudW1iZXI9bnVtYmVyLCBnbG9iYWxzPWxvY2FscygpKQogICAgcmV0dXJuIHp0aW1pbmdzLCBidGltaW5ncwpgYGAKCiMjIEludGVnZXIgdGVzdAoKRm9yIHRlc3RpbmcsIHdlIGNyZWF0ZSBhIDEwMDB4MTAgYXJyYXksIHdoaWNoIGlzIHR5cGljYWwgaW4gb3VyIHVzZSBjYXNlcy4gVGhpcyBjb3VsZCByZXByZXNlbnQgdGhlIHJlc3VsdCBvZiBhIDFzIHNpbXVsYXRpb24gd2l0aCAxMCB1bml0cyBhbmQgMW1zIHRpbWUgYmlucy4KCmBgYHtweXRob259CkEgPSBucC5yYW5kb20ucmFuZGludCgwLCA5LCBzaXplPSgxMDAwLCAxMCkpCmNBID0gQ29tcHJlc3NlZEFycmF5KEEpCnByaW50KCJBID0gXG4iLCBzdHIoQSkpCmI2NCA9IGJhc2U2NC5iNjRlbmNvZGUoY0EuQWJ5dGVzKQp6YjY0ID0gYmFzZTY0LmI2NGVuY29kZShjQS56QWJ5dGVzKQpiYjY0ID0gYmFzZTY0LmI2NGVuY29kZShjQS5iQWJ5dGVzKQpiODUgPSBiYXNlNjQuYjg1ZW5jb2RlKGNBLkFieXRlcykKemI4NSA9IGJhc2U2NC5iODVlbmNvZGUoY0EuekFieXRlcykKYmI4NSA9IGJhc2U2NC5iODVlbmNvZGUoY0EuYkFieXRlcykKYGBgCgpMZW5ndGggb2YgdGhlIHVuZW5jb2RlZCBieXRlIHNlcXVlbmNlczoKCmBgYHtweXRob259CnByaW50KAogICJubyBjb21wcmVzc2lvbiAgOiAiLCBsZW4oY0EuQWJ5dGVzKSwgIlxuIgogICJ6bGliIGNvbXByZXNzZWQgOiAiLCBsZW4oY0EuekFieXRlcyksICJcbiIKICAiYmxvc2MgY29tcHJlc3NlZDogIiwgbGVuKGNBLmJBYnl0ZXMpCikKYGBgCgpMZW5ndGggb2YgYmFzZTY0IGVuY29kZWQgYnl0ZXM6CgpgYGB7cHl0aG9ufQpwcmludCgKICAibm8gY29tcHJlc3Npb24gIDogIiwgZiJ7bGVuKGI2NCk6NmR9IiwgZiIgIOKAlCAge2I2NFs6MTBdfSIsICJcbiIKICAiemxpYiBjb21wcmVzc2VkIDogIiwgZiJ7bGVuKHpiNjQpOjZkfSIsIGYiICDigJQgIHt6YjY0WzoxMF19IiwgIlxuIgogICJibG9zYyBjb21wcmVzc2VkOiAiLCBmIntsZW4oYmI2NCk6NmR9IiwgZiIgIOKAlCAge2JiNjRbOjEwXX0iCikKYGBgCgpMZW5ndGggb2YgYmFzZTg1IGVuY29kZWQgYnl0ZXM6ICAoRmlyc3QgMTAgZW5jb2RlZCBjYXJhY3RlcnMgc2hvd24pCgpgYGB7cHl0aG9ufQpwcmludCgKICAibm8gY29tcHJlc3Npb24gIDogIiwgZiJ7bGVuKGI4NSk6NmR9IiwgZiIgIOKAlCAge2I4NVs6MTBdfSIsICJcbiIKICAiemxpYiBjb21wcmVzc2VkIDogIiwgZiJ7bGVuKHpiODUpOjZkfSIsIGYiICDigJQgIHt6Yjg1WzoxMF19IiwgIlxuIgogICJibG9zYyBjb21wcmVzc2VkOiAiLCBmIntsZW4oYmI4NSk6NmR9IiwgZiIgIOKAlCAge2JiODVbOjEwXX0iCikKYGBgCgpgYGB7cHl0aG9ufQp6dGltaW5ncywgYnRpbWluZ3MgPSBjQS5jb21wcmVzc2lvbl90aW1lcyhyZXBlYXQ9NSwgbnVtYmVyPTMwKQpwcmludCgKICBmInpsaWIgIGNvbXByZXNzaW9uOiB7bnAubWVhbih6dGltaW5ncykqMTAwMDo2LjNmfW1zIMKxIHtucC5zdGQoenRpbWluZ3MpKjEwMDA6NS4zZn1tcyIgIlxuIgogIGYiYmxvc2MgY29tcHJlc3Npb246IHtucC5tZWFuKGJ0aW1pbmdzKSoxMDAwOj02LjNmfW1zIMKxIHtucC5zdGQoYnRpbWluZ3MpKjEwMDA6NS4zZn1tcyIKICApCmBgYAoKCgojIyBGbG9hdGluZy1wb2ludCB0ZXN0CgpXZSB1c2UgdGhlIHNhbWUgc2l6ZWQgYXJyYXkgYXMgaW4gW2Fib3ZlXSgjaW50ZWdlci10ZXN0KSwgYWdhaW4gd2l0aCB2YWx1ZXMgd2l0aGluICRbMCwxMCkkLCBidXQgdGhpcyB0aW1lIHdpdGggZmxvYXRzLgoKYGBge3B5dGhvbn0KQSA9IG5wLnJhbmRvbS5yYW5kb20oc2l6ZT0oMTAwMCwgMTApKSAqIDEwCmNBID0gQ29tcHJlc3NlZEFycmF5KEEpCnByaW50KCJBID0gXG4iLCBzdHIoQSkpCmI2NCA9IGJhc2U2NC5iNjRlbmNvZGUoY0EuQWJ5dGVzKQp6YjY0ID0gYmFzZTY0LmI2NGVuY29kZShjQS56QWJ5dGVzKQpiYjY0ID0gYmFzZTY0LmI2NGVuY29kZShjQS5iQWJ5dGVzKQpiODUgPSBiYXNlNjQuYjg1ZW5jb2RlKGNBLkFieXRlcykKemI4NSA9IGJhc2U2NC5iODVlbmNvZGUoY0EuekFieXRlcykKYmI4NSA9IGJhc2U2NC5iODVlbmNvZGUoY0EuYkFieXRlcykKYGBgCgpMZW5ndGggb2YgdGhlIHVuZW5jb2RlZCBieXRlIHNlcXVlbmNlczoKCmBgYHtweXRob259CnByaW50KAogICJubyBjb21wcmVzc2lvbiAgOiAiLCBsZW4oY0EuQWJ5dGVzKSwgIlxuIgogICJ6bGliIGNvbXByZXNzZWQgOiAiLCBsZW4oY0EuekFieXRlcyksICJcbiIKICAiYmxvc2MgY29tcHJlc3NlZDogIiwgbGVuKGNBLmJBYnl0ZXMpCikKYGBgCgpMZW5ndGggb2YgYmFzZTY0IGVuY29kZWQgYnl0ZXM6CgpgYGB7cHl0aG9ufQpwcmludCgKICAibm8gY29tcHJlc3Npb24gIDogIiwgZiJ7bGVuKGI2NCk6NmR9IiwgZiIgIOKAlCAge2I2NFs6MTBdfSIsICJcbiIKICAiemxpYiBjb21wcmVzc2VkIDogIiwgZiJ7bGVuKHpiNjQpOjZkfSIsIGYiICDigJQgIHt6YjY0WzoxMF19IiwgIlxuIgogICJibG9zYyBjb21wcmVzc2VkOiAiLCBmIntsZW4oYmI2NCk6NmR9IiwgZiIgIOKAlCAge2JiNjRbOjEwXX0iCikKYGBgCgpMZW5ndGggb2YgYmFzZTg1IGVuY29kZWQgYnl0ZXM6ICAoRmlyc3QgMTAgZW5jb2RlZCBjYXJhY3RlcnMgc2hvd24pCgpgYGB7cHl0aG9ufQpwcmludCgKICAibm8gY29tcHJlc3Npb24gIDogIiwgZiJ7bGVuKGI4NSk6NmR9IiwgZiIgIOKAlCAge2I4NVs6MTBdfSIsICJcbiIKICAiemxpYiBjb21wcmVzc2VkIDogIiwgZiJ7bGVuKHpiODUpOjZkfSIsIGYiICDigJQgIHt6Yjg1WzoxMF19IiwgIlxuIgogICJibG9zYyBjb21wcmVzc2VkOiAiLCBmIntsZW4oYmI4NSk6NmR9IiwgZiIgIOKAlCAge2JiODVbOjEwXX0iCikKYGBgCgpgYGB7cHl0aG9ufQp6dGltaW5ncywgYnRpbWluZ3MgPSBjQS5jb21wcmVzc2lvbl90aW1lcyhyZXBlYXQ9NSwgbnVtYmVyPTMwKQpwcmludCgKICBmInpsaWIgIGNvbXByZXNzaW9uOiB7bnAubWVhbih6dGltaW5ncykqMTAwMDo2LjNmfW1zIMKxIHtucC5zdGQoenRpbWluZ3MpKjEwMDA6NS4zZn1tcyIgIlxuIgogIGYiYmxvc2MgY29tcHJlc3Npb246IHtucC5tZWFuKGJ0aW1pbmdzKSoxMDAwOj02LjNmfW1zIMKxIHtucC5zdGQoYnRpbWluZ3MpKjEwMDA6NS4zZn1tcyIKICApCmBgYAo=