@@ -42,18 +42,18 @@ Create an array::
42
42
43
43
>>> import numpy as np
44
44
>>> import zarr
45
- >>> z = zarr.empty((10000, 1000), dtype='i4', chunks=(1000, 100))
45
+ >>> z = zarr.empty(shape= (10000, 1000), dtype='i4', chunks=(1000, 100))
46
46
>>> z
47
47
zarr.ext.SynchronizedArray((10000, 1000), int32, chunks=(1000, 100))
48
- cname: ' blosclz' ; clevel: 5; shuffle: 1 (BYTESHUFFLE)
48
+ cname: blosclz; clevel: 5; shuffle: 1 (BYTESHUFFLE)
49
49
nbytes: 38.1M; cbytes: 0; initialized: 0/100
50
50
51
51
Fill it with some data::
52
52
53
53
>>> z[:] = np.arange(10000000, dtype='i4').reshape(10000, 1000)
54
54
>>> z
55
55
zarr.ext.SynchronizedArray((10000, 1000), int32, chunks=(1000, 100))
56
- cname: ' blosclz' ; clevel: 5; shuffle: 1 (BYTESHUFFLE)
56
+ cname: blosclz; clevel: 5; shuffle: 1 (BYTESHUFFLE)
57
57
nbytes: 38.1M; cbytes: 2.0M; ratio: 19.3; initialized: 100/100
58
58
59
59
Obtain a NumPy array by slicing::
@@ -88,12 +88,12 @@ Resize the array and add more data::
88
88
>>> z.resize(20000, 1000)
89
89
>>> z
90
90
zarr.ext.SynchronizedArray((20000, 1000), int32, chunks=(1000, 100))
91
- cname: ' blosclz' ; clevel: 5; shuffle: 1 (BYTESHUFFLE)
91
+ cname: blosclz; clevel: 5; shuffle: 1 (BYTESHUFFLE)
92
92
nbytes: 76.3M; cbytes: 2.0M; ratio: 38.5; initialized: 100/200
93
93
>>> z[10000:, :] = np.arange(10000000, dtype='i4').reshape(10000, 1000)
94
94
>>> z
95
95
zarr.ext.SynchronizedArray((20000, 1000), int32, chunks=(1000, 100))
96
- cname: ' blosclz' ; clevel: 5; shuffle: 1 (BYTESHUFFLE)
96
+ cname: blosclz; clevel: 5; shuffle: 1 (BYTESHUFFLE)
97
97
nbytes: 76.3M; cbytes: 4.0M; ratio: 19.3; initialized: 200/200
98
98
99
99
For convenience, an ``append() `` method is also available, which can be used to
@@ -103,19 +103,34 @@ append data to any axis::
103
103
>>> z = zarr.array(a, chunks=(1000, 100))
104
104
>>> z
105
105
zarr.ext.SynchronizedArray((10000, 1000), int32, chunks=(1000, 100))
106
- cname: ' blosclz' ; clevel: 5; shuffle: 1 (BYTESHUFFLE)
106
+ cname: blosclz; clevel: 5; shuffle: 1 (BYTESHUFFLE)
107
107
nbytes: 38.1M; cbytes: 2.0M; ratio: 19.3; initialized: 100/100
108
108
>>> z.append(a+a)
109
109
>>> z
110
110
zarr.ext.SynchronizedArray((20000, 1000), int32, chunks=(1000, 100))
111
- cname: ' blosclz' ; clevel: 5; shuffle: 1 (BYTESHUFFLE)
111
+ cname: blosclz; clevel: 5; shuffle: 1 (BYTESHUFFLE)
112
112
nbytes: 76.3M; cbytes: 3.6M; ratio: 21.2; initialized: 200/200
113
113
>>> z.append(np.vstack([a, a]), axis=1)
114
114
>>> z
115
115
zarr.ext.SynchronizedArray((20000, 2000), int32, chunks=(1000, 100))
116
- cname: ' blosclz' ; clevel: 5; shuffle: 1 (BYTESHUFFLE)
116
+ cname: blosclz; clevel: 5; shuffle: 1 (BYTESHUFFLE)
117
117
nbytes: 152.6M; cbytes: 7.6M; ratio: 20.2; initialized: 400/400
118
118
119
+ Create a persistent array (data saved to disk)::
120
+
121
+ >>> import tempfile
122
+ >>> path = 'example.zarr'
123
+ >>> z = zarr.open(path, shape=(10000, 1000), dtype='i4', chunks=(1000, 100))
124
+ >>> z[:] = np.arange(10000000, dtype='i4').reshape(10000, 1000)
125
+ >>> z
126
+ zarr.ext.PersistentArray((10000, 1000), int32, chunks=(1000, 100))
127
+ cname: blosclz; clevel: 5; shuffle: 1 (BYTESHUFFLE)
128
+ nbytes: 38.1M; cbytes: 2.0M; ratio: 19.3; initialized: 100/100
129
+ mode: a; path: example.zarr
130
+
131
+ There is no need to close a persistent array. Data are automatically flushed
132
+ to disk.
133
+
119
134
Tuning
120
135
------
121
136
0 commit comments