Beispiel #1
0
    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
Beispiel #2
0
 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
Beispiel #3
0
 def _as_1d_array(self):
     assert self._is_1d
     return np_tools.clean_no_data_tensors(self)
Beispiel #4
0
 def _is_1d(self):
     return len(np_tools.clean_no_data_tensors(self).shape) == 1