@@ -22,7 +22,7 @@ example::
22
22
>>> z
23
23
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
24
24
nbytes: 381.5M; nbytes_stored: 323; ratio: 1238390.1; initialized: 0/100
25
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
25
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
26
26
store: dict
27
27
28
28
The code above creates a 2-dimensional array of 32-bit integers with
@@ -45,7 +45,7 @@ scalar value::
45
45
>>> z
46
46
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
47
47
nbytes: 381.5M; nbytes_stored: 2.2M; ratio: 170.4; initialized: 100/100
48
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
48
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
49
49
store: dict
50
50
51
51
Notice that the values of ``nbytes_stored ``, ``ratio `` and
@@ -93,7 +93,7 @@ enabling persistence of data between sessions. For example::
93
93
>>> z1
94
94
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
95
95
nbytes: 381.5M; nbytes_stored: 323; ratio: 1238390.1; initialized: 0/100
96
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
96
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
97
97
store: DirectoryStore
98
98
99
99
The array above will store its configuration metadata and all
@@ -117,7 +117,7 @@ Check that the data have been written and can be read again::
117
117
>>> z2
118
118
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
119
119
nbytes: 381.5M; nbytes_stored: 2.3M; ratio: 163.9; initialized: 100/100
120
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
120
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
121
121
store: DirectoryStore
122
122
>>> np.all(z1[:] == z2[:])
123
123
True
@@ -136,7 +136,7 @@ can be increased or decreased in length. For example::
136
136
>>> z
137
137
Array((20000, 10000), float64, chunks=(1000, 1000), order=C)
138
138
nbytes: 1.5G; nbytes_stored: 5.7M; ratio: 268.5; initialized: 100/200
139
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
139
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
140
140
store: dict
141
141
142
142
Note that when an array is resized, the underlying data are not
@@ -152,19 +152,19 @@ which can be used to append data to any axis. E.g.::
152
152
>>> z
153
153
Array((10000, 1000), int32, chunks=(1000, 100), order=C)
154
154
nbytes: 38.1M; nbytes_stored: 1.9M; ratio: 20.0; initialized: 100/100
155
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
155
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
156
156
store: dict
157
157
>>> z.append(a)
158
158
>>> z
159
159
Array((20000, 1000), int32, chunks=(1000, 100), order=C)
160
160
nbytes: 76.3M; nbytes_stored: 3.8M; ratio: 20.0; initialized: 200/200
161
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
161
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
162
162
store: dict
163
163
>>> z.append(np.vstack([a, a]), axis=1)
164
164
>>> z
165
165
Array((20000, 2000), int32, chunks=(1000, 100), order=C)
166
166
nbytes: 152.6M; nbytes_stored: 7.6M; ratio: 20.0; initialized: 400/400
167
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
167
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
168
168
store: dict
169
169
170
170
.. _tutorial_compress :
@@ -187,11 +187,11 @@ accepted by all array creation functions. For example::
187
187
188
188
>>> z = zarr.array(np.arange(100000000, dtype='i4').reshape(10000, 10000),
189
189
... chunks=(1000, 1000),
190
- ... compressor=zarr.BloscCompressor (cname='zstd', clevel=3, shuffle=2))
190
+ ... compressor=zarr.Blosc (cname='zstd', clevel=3, shuffle=2))
191
191
>>> z
192
192
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
193
193
nbytes: 381.5M; nbytes_stored: 3.1M; ratio: 121.1; initialized: 100/100
194
- compressor: BloscCompressor (cname='zstd', clevel=3, shuffle=2)
194
+ compressor: Blosc (cname='zstd', clevel=3, shuffle=2)
195
195
store: dict
196
196
197
197
The array above will use Blosc as the primary compressor, using the
@@ -212,11 +212,11 @@ compression, level 1::
212
212
213
213
>>> z = zarr.array(np.arange(100000000, dtype='i4').reshape(10000, 10000),
214
214
... chunks=(1000, 1000),
215
- ... compressor=zarr.ZlibCompressor (level=1))
215
+ ... compressor=zarr.Zlib (level=1))
216
216
>>> z
217
217
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
218
218
nbytes: 381.5M; nbytes_stored: 132.2M; ratio: 2.9; initialized: 100/100
219
- compressor: ZlibCompressor (level=1)
219
+ compressor: Zlib (level=1)
220
220
store: dict
221
221
222
222
Here is an example using LZMA with a custom filter pipeline including
@@ -225,13 +225,13 @@ the delta filter::
225
225
>>> import lzma
226
226
>>> filters = [dict(id=lzma.FILTER_DELTA, dist=4),
227
227
... dict(id=lzma.FILTER_LZMA2, preset=1)]
228
- >>> compressor = zarr.LZMACompressor (filters=filters)
228
+ >>> compressor = zarr.LZMA (filters=filters)
229
229
>>> z = zarr.array(np.arange(100000000, dtype='i4').reshape(10000, 10000),
230
230
... chunks=(1000, 1000), compressor=compressor)
231
231
>>> z
232
232
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
233
233
nbytes: 381.5M; nbytes_stored: 248.9K; ratio: 1569.6; initialized: 100/100
234
- compressor: LZMACompressor (format=1, check=-1, preset=None, filters=[{'dist': 4, 'id': 3}, {'preset': 1, 'id': 33}])
234
+ compressor: LZMA (format=1, check=-1, preset=None, filters=[{'dist': 4, 'id': 3}, {'preset': 1, 'id': 33}])
235
235
store: dict
236
236
237
237
To disable compression, set ``compressor=None `` when creating an array.
@@ -255,15 +255,15 @@ the primary compressor.
255
255
256
256
Here is an example using the Zarr delta filter with the Blosc compressor:
257
257
258
- >>> filters = [zarr.DeltaFilter (dtype = ' i4' )]
259
- >>> compressor = zarr.BloscCompressor (cname = ' zstd' , clevel = 1 , shuffle = 1 )
258
+ >>> filters = [zarr.Delta (dtype = ' i4' )]
259
+ >>> compressor = zarr.Blosc (cname = ' zstd' , clevel = 1 , shuffle = 1 )
260
260
>>> z = zarr.array(np.arange(100000000 , dtype = ' i4' ).reshape(10000 , 10000 ),
261
261
... chunks= (1000 , 1000 ), filters= filters, compressor= compressor)
262
262
>>> z
263
263
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
264
264
nbytes: 381.5M; nbytes_stored: 381.9K; ratio: 1022.9; initialized: 100/100
265
- compressor: BloscCompressor(cname='zstd', clevel=1, shuffle=1 )
266
- filters: DeltaFilter
265
+ filters: Delta(dtype=int32 )
266
+ compressor: Blosc(cname='zstd', clevel=1, shuffle=1)
267
267
store: dict
268
268
269
269
Zarr comes with implementations of delta, scale-offset, quantize, packbits and
@@ -311,7 +311,7 @@ array with thread synchronization::
311
311
>>> z
312
312
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
313
313
nbytes: 381.5M; nbytes_stored: 323; ratio: 1238390.1; initialized: 0/100
314
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
314
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
315
315
store: dict; synchronizer: ThreadSynchronizer
316
316
317
317
This array is safe to read or write within a multi-threaded program.
@@ -326,7 +326,7 @@ provided that all processes have access to a shared file system. E.g.::
326
326
>>> z
327
327
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
328
328
nbytes: 381.5M; nbytes_stored: 323; ratio: 1238390.1; initialized: 0/100
329
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
329
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
330
330
store: DirectoryStore; synchronizer: ProcessSynchronizer
331
331
332
332
This array is safe to read or write from multiple processes.
@@ -376,17 +376,28 @@ For example, groups can contain other groups::
376
376
>>> foo_group = root_group.create_group('foo')
377
377
>>> bar_group = foo_group.create_group('bar')
378
378
379
- Groups can also contain arrays, also known as "datasets" in HDF5 terminology.
380
- For compatibility with h5py, Zarr groups implement the
381
- :func: `zarr.hierarchy.Group.create_dataset ` method, e.g.::
379
+ Groups can also contain arrays, e.g.::
382
380
383
- >>> z = bar_group.create_dataset('baz', shape=(10000, 10000),
381
+ >>> z1 = bar_group.zeros('baz', shape=(10000, 10000), chunks=(1000, 1000), dtype='i4',
382
+ ... compressor=zarr.Blosc(cname='zstd', clevel=1, shuffle=1))
383
+ >>> z1
384
+ Array(/foo/bar/baz, (10000, 10000), int32, chunks=(1000, 1000), order=C)
385
+ nbytes: 381.5M; nbytes_stored: 324; ratio: 1234567.9; initialized: 0/100
386
+ compressor: Blosc(cname='zstd', clevel=1, shuffle=1)
387
+ store: DictStore
388
+
389
+ Arrays are known as "datasets" in HDF5 terminology. For compatibility with
390
+ h5py, Zarr groups also implement the :func: `zarr.hierarchy.Group.create_dataset `
391
+ method, e.g.::
392
+
393
+ >>> z = bar_group.create_dataset('quux', shape=(10000, 10000),
384
394
... chunks=(1000, 1000), dtype='i4',
385
- ... fill_value=0)
395
+ ... fill_value=0, compression='gzip',
396
+ ... compression_opts=1)
386
397
>>> z
387
- Array(/foo/bar/baz , (10000, 10000), int32, chunks=(1000, 1000), order=C)
388
- nbytes: 381.5M; nbytes_stored: 323 ; ratio: 1238390.1 ; initialized: 0/100
389
- compressor: BloscCompressor(cname='lz4', clevel=5, shuffle =1)
398
+ Array(/foo/bar/quux , (10000, 10000), int32, chunks=(1000, 1000), order=C)
399
+ nbytes: 381.5M; nbytes_stored: 275 ; ratio: 1454545.5 ; initialized: 0/100
400
+ compressor: Zlib(level =1)
390
401
store: DictStore
391
402
392
403
Members of a group can be accessed via the suffix notation, e.g.::
@@ -400,13 +411,13 @@ The '/' character can be used to access multiple levels of the hierarchy,
400
411
e.g.::
401
412
402
413
>>> root_group['foo/bar']
403
- Group(/foo/bar, 1 )
404
- arrays: 1 ; baz
414
+ Group(/foo/bar, 2 )
415
+ arrays: 2 ; baz, quux
405
416
store: DictStore
406
417
>>> root_group['foo/bar/baz']
407
418
Array(/foo/bar/baz, (10000, 10000), int32, chunks=(1000, 1000), order=C)
408
- nbytes: 381.5M; nbytes_stored: 323 ; ratio: 1238390.1 ; initialized: 0/100
409
- compressor: BloscCompressor (cname='lz4 ', clevel=5 , shuffle=1)
419
+ nbytes: 381.5M; nbytes_stored: 324 ; ratio: 1234567.9 ; initialized: 0/100
420
+ compressor: Blosc (cname='zstd ', clevel=1 , shuffle=1)
410
421
store: DictStore
411
422
412
423
The :func: `zarr.hierarchy.open_group ` provides a convenient way to create or
@@ -423,7 +434,7 @@ stored in sub-directories, e.g.::
423
434
>>> z
424
435
Array(/foo/bar/baz, (10000, 10000), int32, chunks=(1000, 1000), order=C)
425
436
nbytes: 381.5M; nbytes_stored: 323; ratio: 1238390.1; initialized: 0/100
426
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
437
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
427
438
store: DirectoryStore
428
439
429
440
For more information on groups see the :mod: `zarr.hierarchy ` API docs.
@@ -465,12 +476,12 @@ data. E.g.::
465
476
>>> zarr.array(a, chunks=(1000, 1000))
466
477
Array((10000, 10000), int32, chunks=(1000, 1000), order=C)
467
478
nbytes: 381.5M; nbytes_stored: 26.3M; ratio: 14.5; initialized: 100/100
468
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
479
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
469
480
store: dict
470
481
>>> zarr.array(a, chunks=(1000, 1000), order='F')
471
482
Array((10000, 10000), int32, chunks=(1000, 1000), order=F)
472
483
nbytes: 381.5M; nbytes_stored: 9.5M; ratio: 40.1; initialized: 100/100
473
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
484
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
474
485
store: dict
475
486
476
487
In the above example, Fortran order gives a better compression ratio. This
@@ -494,13 +505,13 @@ Here is an example storing an array directly into a Zip file::
494
505
>>> z
495
506
Array((1000, 1000), int32, chunks=(100, 100), order=C)
496
507
nbytes: 3.8M; nbytes_stored: 319; ratio: 12539.2; initialized: 0/100
497
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
508
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
498
509
store: ZipStore
499
510
>>> z[:] = 42
500
511
>>> z
501
512
Array((1000, 1000), int32, chunks=(100, 100), order=C)
502
513
nbytes: 3.8M; nbytes_stored: 25.7K; ratio: 152.0; initialized: 100/100
503
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
514
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
504
515
store: ZipStore
505
516
>>> import os
506
517
>>> os.path.getsize('example.zip')
@@ -513,7 +524,7 @@ Re-open and check that data have been written::
513
524
>>> z
514
525
Array((1000, 1000), int32, chunks=(100, 100), order=C)
515
526
nbytes: 3.8M; nbytes_stored: 25.7K; ratio: 152.0; initialized: 100/100
516
- compressor: BloscCompressor (cname='lz4', clevel=5, shuffle=1)
527
+ compressor: Blosc (cname='lz4', clevel=5, shuffle=1)
517
528
store: ZipStore
518
529
>>> z[:]
519
530
array([[42, 42, 42, ..., 42, 42, 42],
0 commit comments