Python numpy.memmap() Examples
The following are 30 code examples for showing how to use numpy.memmap(). These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.
You may check out the related API usage on the sidebar.
You may also want to check out all available functions/classes of the module
numpy
, or try the search function
.
Example 1
Project: Traffic_sign_detection_YOLO Author: AmeyaWagh File: loader.py License: MIT License | 6 votes |
def walk(self, size): if self.eof: return None end_point = self.offset + 4 * size assert end_point <= self.size, \ 'Over-read {}'.format(self.path) float32_1D_array = np.memmap( self.path, shape = (), mode = 'r', offset = self.offset, dtype='({})float32,'.format(size) ) self.offset = end_point if end_point == self.size: self.eof = True return float32_1D_array
Example 2
Project: Automatic-Identification-and-Counting-of-Blood-Cells Author: MahmudulAlam File: loader.py License: GNU General Public License v3.0 | 6 votes |
def walk(self, size): if self.eof: return None end_point = self.offset + 4 * size assert end_point <= self.size, \ 'Over-read {}'.format(self.path) float32_1D_array = np.memmap( self.path, shape = (), mode = 'r', offset = self.offset, dtype='({})float32,'.format(size) ) self.offset = end_point if end_point == self.size: self.eof = True return float32_1D_array
Example 3
Project: Traffic-Signs-and-Object-Detection Author: dark-archerx File: loader.py License: GNU General Public License v3.0 | 6 votes |
def walk(self, size): if self.eof: return None end_point = self.offset + 4 * size assert end_point <= self.size, \ 'Over-read {}'.format(self.path) float32_1D_array = np.memmap( self.path, shape = (), mode = 'r', offset = self.offset, dtype='({})float32,'.format(size) ) self.offset = end_point if end_point == self.size: self.eof = True return float32_1D_array
Example 4
Project: recruit Author: Frank-qlu File: memmap.py License: Apache License 2.0 | 6 votes |
def flush(self): """ Write any changes in the array to the file on disk. For further information, see `memmap`. Parameters ---------- None See Also -------- memmap """ if self.base is not None and hasattr(self.base, 'flush'): self.base.flush()
Example 5
Project: ibllib Author: int-brain-lab File: spikeglx.py License: MIT License | 6 votes |
def __init__(self, sglx_file): self.file_bin = Path(sglx_file) self.nbytes = self.file_bin.stat().st_size file_meta_data = Path(sglx_file).with_suffix('.meta') if not file_meta_data.exists(): self.file_meta_data = None self.meta = None self.channel_conversion_sample2v = 1 _logger.warning(str(sglx_file) + " : no metadata file found. Very limited support") return # normal case we continue reading and interpreting the metadata file self.file_meta_data = file_meta_data self.meta = read_meta_data(file_meta_data) self.channel_conversion_sample2v = _conversion_sample2v_from_meta(self.meta) # if we are not looking at a compressed file, use a memmap, otherwise instantiate mtscomp if self.is_mtscomp: self.data = mtscomp.Reader() self.data.open(self.file_bin, self.file_bin.with_suffix('.ch')) else: if self.nc * self.ns * 2 != self.nbytes: _logger.warning(str(sglx_file) + " : meta data and filesize do not checkout") self.data = np.memmap(sglx_file, dtype='int16', mode='r', shape=(self.ns, self.nc))
Example 6
Project: tf-pose Author: SrikanthVelpuri File: MetaArray.py License: Apache License 2.0 | 6 votes |
def _readData1(self, fd, meta, mmap=False, **kwds): ## Read array data from the file descriptor for MetaArray v1 files ## read in axis values for any axis that specifies a length frameSize = 1 for ax in meta['info']: if 'values_len' in ax: ax['values'] = np.fromstring(fd.read(ax['values_len']), dtype=ax['values_type']) frameSize *= ax['values_len'] del ax['values_len'] del ax['values_type'] self._info = meta['info'] if not kwds.get("readAllData", True): return ## the remaining data is the actual array if mmap: subarr = np.memmap(fd, dtype=meta['type'], mode='r', shape=meta['shape']) else: subarr = np.fromstring(fd.read(), dtype=meta['type']) subarr.shape = meta['shape'] self._data = subarr
Example 7
Project: lambda-packs Author: ryfeus File: memmap.py License: MIT License | 6 votes |
def flush(self): """ Write any changes in the array to the file on disk. For further information, see `memmap`. Parameters ---------- None See Also -------- memmap """ if self.base is not None and hasattr(self.base, 'flush'): self.base.flush()
Example 8
Project: fairseq Author: pytorch File: indexed_dataset.py License: MIT License | 6 votes |
def __init__(self, path): with open(path, 'rb') as stream: magic_test = stream.read(9) assert self._HDR_MAGIC == magic_test, ( 'Index file doesn\'t match expected format. ' 'Make sure that --dataset-impl is configured properly.' ) version = struct.unpack('<Q', stream.read(8)) assert (1,) == version dtype_code, = struct.unpack('<B', stream.read(1)) self._dtype = dtypes[dtype_code] self._dtype_size = self._dtype().itemsize self._len = struct.unpack('<Q', stream.read(8))[0] offset = stream.tell() _warmup_mmap_file(path) self._bin_buffer_mmap = np.memmap(path, mode='r', order='C') self._bin_buffer = memoryview(self._bin_buffer_mmap) self._sizes = np.frombuffer(self._bin_buffer, dtype=np.int32, count=self._len, offset=offset) self._pointers = np.frombuffer(self._bin_buffer, dtype=np.int64, count=self._len, offset=offset + self._sizes.nbytes)
Example 9
Project: auto-alt-text-lambda-api Author: abhisuri97 File: memmap.py License: MIT License | 6 votes |
def flush(self): """ Write any changes in the array to the file on disk. For further information, see `memmap`. Parameters ---------- None See Also -------- memmap """ if self.base is not None and hasattr(self.base, 'flush'): self.base.flush()
Example 10
Project: D-VAE Author: muhanzhang File: elemwise.py License: MIT License | 6 votes |
def perform(self, node, inp, out): input, = inp storage, = out # drop res = input if type(res) != numpy.ndarray and type(res) != numpy.memmap: raise TypeError(res) # transpose res = res.transpose(self.shuffle + self.drop) # augment shape = list(res.shape[:len(self.shuffle)]) for augm in self.augment: shape.insert(augm, 1) res = res.reshape(shape) # copy (if not inplace) if not self.inplace: res = numpy.copy(res) storage[0] = numpy.asarray(res) # asarray puts scalars back into array
Example 11
Project: vnpy_crypto Author: birforce File: memmap.py License: MIT License | 6 votes |
def flush(self): """ Write any changes in the array to the file on disk. For further information, see `memmap`. Parameters ---------- None See Also -------- memmap """ if self.base is not None and hasattr(self.base, 'flush'): self.base.flush()
Example 12
Project: spikeextractors Author: SpikeInterface File: test_extractors.py License: MIT License | 6 votes |
def test_allocate_arrays(self): shape = (30, 1000) dtype = 'int16' arr_in_memory = self.RX.allocate_array(shape=shape, dtype=dtype, memmap=False) arr_memmap = self.RX.allocate_array(shape=shape, dtype=dtype, memmap=True) assert isinstance(arr_in_memory, np.ndarray) assert isinstance(arr_memmap, np.memmap) assert arr_in_memory.shape == shape assert arr_memmap.shape == shape assert arr_in_memory.dtype == dtype assert arr_memmap.dtype == dtype arr_in_memory = self.SX.allocate_array(shape=shape, dtype=dtype, memmap=False) arr_memmap = self.SX.allocate_array(shape=shape, dtype=dtype, memmap=True) assert isinstance(arr_in_memory, np.ndarray) assert isinstance(arr_memmap, np.memmap) assert arr_in_memory.shape == shape assert arr_memmap.shape == shape assert arr_in_memory.dtype == dtype assert arr_memmap.dtype == dtype
Example 13
Project: spikeextractors Author: SpikeInterface File: readSGLX.py License: MIT License | 6 votes |
def makeMemMapRaw(binFullPath, meta): nChan = int(meta['nSavedChans']) nFileSamp = int(int(meta['fileSizeBytes'])/(2*nChan)) print("nChan: %d, nFileSamp: %d" % (nChan, nFileSamp)) rawData = np.memmap(binFullPath, dtype='int16', mode='r', shape=(nChan, nFileSamp), offset=0, order='F') return(rawData) # Return an array [lines X timepoints] of uint8 values for a # specified set of digital lines. # # - dwReq is the zero-based index into the saved file of the # 16-bit word that contains the digital lines of interest. # - dLineList is a zero-based list of one or more lines/bits # to scan from word dwReq. #
Example 14
Project: translate Author: pytorch File: data.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def load(self, path, num_examples_limit: Optional[int] = None): with PathManager.open(path, "rb") as f: npz = np.load(f) # For big input data, we don't want the cpu to OOM. # Therefore, we are loading the huge buffer array into disc # and reading it from disc instead of memory. if npz["buffer"].nbytes > ARRAY_SIZE_LIMIT_FOR_MEMORY: self.buffer = np.memmap( tempfile.NamedTemporaryFile().name, dtype="float32", mode="w+", shape=npz["buffer"].shape, ) self.buffer[:] = npz["buffer"][:] else: self.buffer = npz["buffer"] self.offsets = npz["offsets"] if num_examples_limit is not None and len(self.offsets) > num_examples_limit: self.offsets = self.offsets[: num_examples_limit + 1] self.buffer = self.buffer[: self.offsets[-1]] self.sizes = self.offsets[1:] - self.offsets[:-1]
Example 15
Project: estimators Author: fridiculous File: hashing.py License: MIT License | 6 votes |
def __init__(self, hash_name='md5', coerce_mmap=False): """ Parameters ---------- hash_name: string The hash algorithm to be used coerce_mmap: boolean Make no difference between np.memmap and np.ndarray objects. """ self.coerce_mmap = coerce_mmap Hasher.__init__(self, hash_name=hash_name) # delayed import of numpy, to avoid tight coupling import numpy as np self.np = np if hasattr(np, 'getbuffer'): self._getbuffer = np.getbuffer else: self._getbuffer = memoryview
Example 16
Project: estimators Author: fridiculous File: hashing.py License: MIT License | 6 votes |
def hash(obj, hash_name='md5', coerce_mmap=False): """ Quick calculation of a hash to identify uniquely Python objects containing numpy arrays. Parameters ----------- hash_name: 'md5' or 'sha1' Hashing algorithm used. sha1 is supposedly safer, but md5 is faster. coerce_mmap: boolean Make no difference between np.memmap and np.ndarray """ if 'numpy' in sys.modules: hasher = NumpyHasher(hash_name=hash_name, coerce_mmap=coerce_mmap) else: hasher = Hasher(hash_name=hash_name) return hasher.hash(obj)
Example 17
Project: mlens Author: flennerhag File: backend.py License: MIT License | 6 votes |
def _gen_prediction_array(self, task, job, threading): """Generate prediction array either in-memory or persist to disk.""" shape = task.shape(job) if threading: self.job.predict_out = np.zeros(shape, dtype=_dtype(task)) else: f = os.path.join(self.job.dir, '%s_out_array.mmap' % task.name) try: self.job.predict_out = np.memmap( filename=f, dtype=_dtype(task), mode='w+', shape=shape) except Exception as exc: raise OSError( "Cannot create prediction matrix of shape (" "%i, %i), size %i MBs, for %s.\n Details:\n%r" % (shape[0], shape[1], 8 * shape[0] * shape[1] / (1024 ** 2), task.name, exc))
Example 18
Project: mlens Author: flennerhag File: hashing.py License: MIT License | 6 votes |
def __init__(self, hash_name='md5', coerce_mmap=False): """ Parameters ---------- hash_name: string The hash algorithm to be used coerce_mmap: boolean Make no difference between np.memmap and np.ndarray objects. """ self.coerce_mmap = coerce_mmap Hasher.__init__(self, hash_name=hash_name) # delayed import of numpy, to avoid tight coupling import numpy as np self.np = np if hasattr(np, 'getbuffer'): self._getbuffer = np.getbuffer else: self._getbuffer = memoryview
Example 19
Project: Computable Author: ktraunmueller File: memmap.py License: MIT License | 6 votes |
def flush(self): """ Write any changes in the array to the file on disk. For further information, see `memmap`. Parameters ---------- None See Also -------- memmap """ if self.base is not None and hasattr(self.base, 'flush'): self.base.flush()
Example 20
Project: Traffic_sign_detection_YOLO Author: AmeyaWagh File: loader.py License: MIT License | 5 votes |
def __init__(self, path): self.eof = False # end of file self.path = path # current pos if path is None: self.eof = True return else: self.size = os.path.getsize(path)# save the path major, minor, revision, seen = np.memmap(path, shape = (), mode = 'r', offset = 0, dtype = '({})i4,'.format(4)) self.transpose = major > 1000 or minor > 1000 self.offset = 16
Example 21
Project: Automatic-Identification-and-Counting-of-Blood-Cells Author: MahmudulAlam File: loader.py License: GNU General Public License v3.0 | 5 votes |
def __init__(self, path): self.eof = False # end of file self.path = path # current pos if path is None: self.eof = True return else: self.size = os.path.getsize(path)# save the path major, minor, revision, seen = np.memmap(path, shape = (), mode = 'r', offset = 0, dtype = '({})i4,'.format(4)) self.transpose = major > 1000 or minor > 1000 self.offset = 16
Example 22
Project: me-ica Author: ME-ICA File: parrec.py License: GNU Lesser General Public License v2.1 | 5 votes |
def raw_data_from_fileobj(self, fileobj): """Returns memmap array of raw unscaled image data. Array axes correspond to x,y,z,t. """ # memmap the data -- it is guaranteed to be uncompressed and all # properties are known # read in Fortran order to have spatial axes first data = np.memmap(fileobj, dtype=self.get_data_dtype(), mode='c', # copy-on-write shape=self.get_data_shape_in_file(), order='F') return data
Example 23
Project: baseband Author: mhvk File: sequentialfile.py License: GNU General Public License v3.0 | 5 votes |
def memmap(self, dtype=np.uint8, mode=None, offset=None, shape=None, order='C'): """Map part of the file in memory. Note that the map cannnot span multiple underlying files. Parameters are as for `~numpy.memmap`. """ if self.closed: raise ValueError('memmap of closed file.') dtype = np.dtype(dtype) if mode is None: mode = self.mode.replace('b', '') if offset is not None and offset != self.tell(): # seek will fail for SequentialFileWriter, so we try to avoid it. self.seek(offset) elif self.fh.tell() == self._file_sizes[self.file_nr]: self._open(self.file_nr + 1) if shape is None: count = self.size - self.tell() if count % dtype.itemsize: raise ValueError("size of available data is not a " "multiple of the data-type size.") shape = (count // dtype.itemsize,) else: if not isinstance(shape, tuple): shape = (shape,) count = dtype.itemsize for k in shape: count *= k if self.fh.tell() + count > self._file_sizes[self.file_nr]: raise ValueError('mmap length exceeds individual file size') file_offset = self.fh.tell() mm = np.memmap(self.fh, dtype, mode, file_offset, shape, order) self.fh.seek(file_offset + count) return mm
Example 24
Project: baseband Author: mhvk File: sequentialfile.py License: GNU General Public License v3.0 | 5 votes |
def memmap(self, dtype=np.uint8, mode=None, offset=None, shape=None, order='C'): """Map part of the file in memory. Cannnot span file boundaries.""" if shape is None: raise ValueError('cannot make writable memmap without shape.') return super().memmap(dtype, mode, offset, shape, order)
Example 25
Project: baseband Author: mhvk File: sequentialfile.py License: GNU General Public License v3.0 | 5 votes |
def open(files, mode='rb', file_size=None, opener=None): """Read or write several files as if they were one contiguous one. Parameters ---------- files : list, tuple, or other iterable of str, filehandle Contains the names of the underlying files that should be combined, ordered in time. If not a list or tuple, it should allow indexing with positive indices, and raise `IndexError` if these are out of range. mode : str, optional The mode with which the files should be opened (default: 'rb'). file_size : int, optional For writing, the maximum size of a file, beyond which a new file should be opened. Default: `None`, which means it is unlimited and only a single file will be written. opener : callable, optional Function to open a single file (default: `io.open`). Notes ----- The returned reader/writer will have a ``memmap`` method with which part of the files can be mapped to memory (like with `~numpy.memmap`), as long as those parts do not span files (and the underlying files are regular ones). For writing, this requires opening in read-write mode (i.e., 'w+b'). Methods other than ``read``, ``write``, ``seek``, ``tell``, and ``close`` are tried on the underlying file. This implies, e.g., ``readline`` is possible, though the line cannot span multiple files. The reader assumes the sequence of files is **contiguous in time**, ie. with no gaps in the data. """ if 'r' in mode: if file_size is not None: raise TypeError("cannot pass in 'file_size' for reading.") return SequentialFileReader(files, mode, opener=opener) elif 'w' in mode: return SequentialFileWriter(files, mode, file_size=file_size, opener=opener) else: raise ValueError("invalid mode '{0}'".format(mode))
Example 26
Project: baseband Author: mhvk File: test_dada.py License: GNU General Public License v3.0 | 5 votes |
def setup_class(cls): with open(SAMPLE_FILE, 'rb') as fh: cls.header = dada.DADAHeader.fromfile(fh) cls.payload = dada.DADAPayload.fromfile(fh, cls.header, memmap=False)
Example 27
Project: baseband Author: mhvk File: test_dada.py License: GNU General Public License v3.0 | 5 votes |
def test_frame(self, tmpdir): with dada.open(SAMPLE_FILE, 'rb') as fh: frame = fh.read_frame(memmap=False) header, payload = frame.header, frame.payload assert header == self.header assert payload == self.payload assert frame == dada.DADAFrame(header, payload) assert frame.shape == payload.shape assert frame.size == payload.size assert frame.ndim == payload.ndim assert np.all(frame[:3] == np.array( [[[-38.-38.j], [-38.-38.j]], [[-38.-38.j], [-40.+0.j]], [[-105.+60.j], [85.-15.j]]], dtype=np.complex64)) with open(str(tmpdir.join('test.dada')), 'w+b') as s: frame.tofile(s) s.seek(0) frame2 = dada.DADAFrame.fromfile(s, memmap=False) assert s.tell() == frame.nbytes assert frame2 == frame frame3 = dada.DADAFrame.fromdata(payload.data, header) assert frame3 == frame frame4 = dada.DADAFrame.fromdata(payload.data, **header) assert frame4 == frame header5 = header.copy() frame5 = dada.DADAFrame(header5, payload, valid=False) assert frame5.valid is False assert np.all(frame5.data == 0.) frame5.valid = True assert frame5 == frame
Example 28
Project: baseband Author: mhvk File: test_guppi.py License: GNU General Public License v3.0 | 5 votes |
def setup_class(cls): with open(SAMPLE_FILE, 'rb') as fh: cls.header = guppi.GUPPIHeader.fromfile(fh) cls.payload = guppi.GUPPIPayload.fromfile(fh, cls.header, memmap=False) # Create a header with no overlap for stream writers. cls.header_w = cls.header.copy() cls.header_w.overlap = 0 cls.header_w.payload_nbytes = cls.header.payload_nbytes - ( cls.header._bpcs * cls.header.overlap // 8)
Example 29
Project: baseband Author: mhvk File: test_guppi.py License: GNU General Public License v3.0 | 5 votes |
def test_frame(self, tmpdir): with guppi.open(SAMPLE_FILE, 'rb') as fh: frame = fh.read_frame(memmap=False) assert fh.tell() == frame.nbytes header, payload = frame.header, frame.payload assert header == self.header assert payload == self.payload assert frame == guppi.GUPPIFrame(header, payload) assert frame.sample_shape == payload.sample_shape assert frame.shape == (len(frame),) + frame.sample_shape assert frame.size == len(frame) * np.prod(frame.sample_shape) assert frame.ndim == payload.ndim assert np.all(frame[337:340] == np.array( [[[2.-25.j, 31.+2.j, -10.+1.j, -29.+14.j], [24.+6.j, -23.-16.j, -22.-20.j, -11.-6.j]], [[11.+10.j, -2.-1.j, -6.+9.j, 19.+16.j], [10.-25.j, -33.-5.j, 14.+0.j, 3.-3.j]], [[22.-7.j, 5.+11.j, -21.+4.j, 2.+0.j], [-4.-12.j, 1.+1.j, 13.+6.j, -31.-4.j]]], dtype=np.complex64)) with open(str(tmpdir.join('testguppi.raw')), 'w+b') as s: frame.tofile(s) s.seek(0) frame2 = guppi.GUPPIFrame.fromfile(s, memmap=False) assert frame2 == frame frame3 = guppi.GUPPIFrame.fromdata(payload.data, header) assert frame3 == frame frame4 = guppi.GUPPIFrame.fromdata(payload.data, **header) assert frame4 == frame header5 = header.copy() frame5 = guppi.GUPPIFrame(header5, payload, valid=False) assert frame5.valid is False assert np.all(frame5.data == 0.) invalid_samples = frame5[-1000:] assert np.all(invalid_samples == 0.) assert invalid_samples.shape == (1000, 2, 4) invalid_samples = frame5[8192:] assert invalid_samples.shape == (0, 2, 4) frame5.valid = True assert frame5 == frame
Example 30
Project: Traffic-Signs-and-Object-Detection Author: dark-archerx File: loader.py License: GNU General Public License v3.0 | 5 votes |
def __init__(self, path): self.eof = False # end of file self.path = path # current pos if path is None: self.eof = True return else: self.size = os.path.getsize(path)# save the path major, minor, revision, seen = np.memmap(path, shape = (), mode = 'r', offset = 0, dtype = '({})i4,'.format(4)) self.transpose = major > 1000 or minor > 1000 self.offset = 20