def __init__()

in flink-ml-python/pyflink/ml/linalg.py [0:0]


    def __init__(self, size: int, *args):
        self._size = size
        assert 1 <= len(args) <= 2, "The number of arguments must be 2 or 3"
        if len(args) == 1:
            # a dict, a list of (index, value) pairs
            pairs = args[0]
            if isinstance(pairs, dict):
                pairs = pairs.items()
            pairs = sorted(pairs)
            self._indices = np.array([p[0] for p in pairs], dtype=np.int32)
            self._values = np.array([p[1] for p in pairs], dtype=np.float64)
        else:
            assert len(args[0]) == len(args[1]), "The length of indices and values should be same"
            # two separate arrays of indices and values.
            self._indices = np.array(args[0], dtype=np.int32)
            self._values = np.array(args[1], dtype=np.float64)
            for i in range(len(self._indices) - 1):
                if self._indices[i] >= self._indices[i + 1]:
                    raise TypeError(
                        "Indices {0} and {1} are not strictly increasing".format(
                            self._indices[i], self._indices[i + 1]))