def __new__(cls, data, dtype=None, force2d="as_row", *args, **kwargs): assert force2d in ("as_row", "as_col") if isinstance(data, cls): matrix_data = data cls._preprocess_if_data_is_cls(matrix=matrix_data, *args, **kwargs) return matrix_data else: if isinstance(data, (unicode, str)): # in case of matrix_data = np.array(unicode-type instance) # the shape of matrix_data would be () and len(matrix_data.shape) == 0 matrix_data = np.array([data], dtype=dtype) else: matrix_data = np.array(data, dtype=dtype) if len(matrix_data.shape) > 2: matrix_data = np_tools.clean_no_data_tensors(matrix_data) if force2d == "as_row": if len(matrix_data.shape) < 2: matrix_data = np.array([matrix_data]) elif force2d == "as_col": if len(matrix_data.shape) < 2: matrix_data = np.array([matrix_data]).T assert len(matrix_data.shape) == 2 matrix_data = matrix_data.view(cls) cls._preprocess_before_init_return(matrix=matrix_data, *args, **kwargs) return matrix_data
def __new__(cls, data, dtype=None, *args, **kwargs): if isinstance(data, cls): values_vector = data cls._preprocess_if_data_is_cls(vector=values_vector,*args, **kwargs) return values_vector else: vector_data = np.array(data, dtype=dtype) if len(vector_data.shape) > 1: vector_data = np_tools.clean_no_data_tensors(vector_data) assert len(vector_data.shape) == 1 vector_data = vector_data.view(cls) cls._preprocess_before_init_return(vector=vector_data,*args, **kwargs) return vector_data
def _as_1d_array(self): assert self._is_1d return np_tools.clean_no_data_tensors(self)
def _is_1d(self): return len(np_tools.clean_no_data_tensors(self).shape) == 1