def mat_shape(self): """Get the shape of the represented matrix.""" self.check_rows_cols() helpers.check_axis_names(self) nrows = 1 for axis in self.rows: nrows *= self.shape[axis] ncols = 1 for axis in self.cols: ncols *= self.shape[axis] return (nrows, ncols)
def __setattr__(self, name, value): if name == 'axes': helpers.check_axis_names(self, value) self.info['axes'] = value elif name == 'rows': for ind in value: if ind not in range(self.ndim): raise ValueError("Invalid row axes.") self.info['rows'] = tuple(value) elif name == 'cols': for ind in value: if ind not in range(self.ndim): raise ValueError("Invalid col axes.") self.info['cols'] = tuple(value) else: self.info_base.__setattr__(self, name, value)
def __new__(cls, input_array, row_axes=None, col_axes=None, axis_names=None): if not isinstance(input_array, cls.info_base): raise ValueError("Array to convert must be instance of " + str(cls.info_base)) obj = input_array.view(cls) if 'type' in obj.info: if axis_names is not None or \ row_axes is not None or \ col_axes is not None: warnings.warn("Initialization argument ignored. Requisite " "metadata for matrix already exists. " "Clear info dictionary if you want opposite " "behaviour.") if obj.info['type'] != 'mat': raise ValueError("Meta data present is incompatible.") helpers.check_axis_names(obj) helpers.check_rows_cols(obj) else: if row_axes is None and \ col_axes is None and \ (input_array.ndim == 2): row_axes = (0, ) col_axes = (1, ) else: helpers.check_rows_cols(input_array, row_axes, col_axes) helpers.set_type_axes(obj, 'mat', axis_names) obj.rows = row_axes obj.cols = col_axes return obj
def __new__(cls, input_array, axis_names=None): if not isinstance(input_array, cls.info_base): raise ValueError("Array to convert must be instance of " + str(cls.info_base)) obj = input_array.view(cls) if 'type' in obj.info: if axis_names is not None: warnings.warn("Initialization argument ignored. Requisite " "metadata for vector already exists. " "Clear info dictionary if you want opposite " "behaviour.") if obj.info['type'] != 'vect': raise ValueError("Meta data present is incompatible.") helpers.check_axis_names(obj) else: helpers.set_type_axes(obj, 'vect', axis_names) return obj
def __new__(cls, input_array, row_axes=None, col_axes=None, axis_names=None): if not isinstance(input_array, cls.info_base): raise ValueError("Array to convert must be instance of " + str(cls.info_base)) obj = input_array.view(cls) if 'type' in obj.info: if axis_names is not None or \ row_axes is not None or \ col_axes is not None: warnings.warn("Initialization argument ignored. Requisite " "metadata for matrix already exists. " "Clear info dictionary if you want opposite " "behaviour.") if obj.info['type'] != 'mat': raise ValueError("Meta data present is incompatible.") helpers.check_axis_names(obj) helpers.check_rows_cols(obj) else: if row_axes is None and \ col_axes is None and \ (input_array.ndim == 2): row_axes = (0,) col_axes = (1,) else: helpers.check_rows_cols(input_array, row_axes, col_axes) helpers.set_type_axes(obj, 'mat', axis_names) obj.rows = row_axes obj.cols = col_axes return obj
def __setattr__(self, name, value): if name == 'axes': helpers.check_axis_names(self, value) self.info['axes'] = value else: self.info_base.__setattr__(self, name, value)
def mat_shape(self): """Get the shape of the represented matrix (vector).""" helpers.check_axis_names(self) return (self.size, )
def mat_shape(self): """Get the shape of the represented matrix (vector).""" helpers.check_axis_names(self) return (self.size,)