def _tofileByBlocks(self, file, dims, indexlevel, blockingparameters): """Write the array to a file repeatedly in blocks This is done similarly to ufunc._doOverDimensions """ level = len(dims) if level == indexlevel: nregShapeIters, shape, leftover, leftoverShape, = blockingparameters currentIndex = 0 tshape = shape[:] for i in xrange(nregShapeIters + leftover): if i==nregShapeIters: tshape = leftoverShape tdims = dims + [currentIndex,] s = _bytes.copyToString( tshape, self._data, self._getByteOffset(tdims), self._strides[-len(tshape):], self._itemsize) file.write( s ) currentIndex += shape[0] else: # recurse for i in xrange(self._shape[level]): tdims = dims + [i] self._tofileByBlocks(file, tdims, indexlevel, blockingparameters)
def tostring(self): """Return a string with a binary copy of the array Copies are always contiguous, but no conversions are implied """ if self.rank == 0: self = self.view() self.shape = (1,) return _bytes.copyToString(self._shape, self._data, self._byteoffset, self._strides, self._itemsize)