Beispiel #1
0
def test_invalid_iterable_error():
    with pytest.raises(ValueError):
        x = [(3, 4, 5)]
        COO.from_iter(x)

    with pytest.raises(ValueError):
        x = [((2.3, 4.5), 3.2)]
        COO.from_iter(x)
Beispiel #2
0
    def asformat(self, format):
        """
        Convert this sparse array to a given format.

        Parameters
        ----------
        format : str
            A format string.

        Returns
        -------
        out : SparseArray
            The converted array.

        Raises
        ------
        NotImplementedError
            If the format isn't supported.
        """
        if format == "dok" or format is DOK:
            return self

        from ._coo import COO

        if format == "coo" or format is COO:
            return COO.from_iter(
                self.data,
                shape=self.shape,
                fill_value=self.fill_value,
                dtype=self.dtype,
            )

        raise NotImplementedError("The given format is not supported.")
Beispiel #3
0
    def asformat(self, format, **kwargs):
        """
        Convert this sparse array to a given format.

        Parameters
        ----------
        format : str
            A format string.

        Returns
        -------
        out : SparseArray
            The converted array.

        Raises
        ------
        NotImplementedError
            If the format isn't supported.
        """
        from sparse._utils import convert_format

        format = convert_format(format)

        if format == "dok":
            return self

        if format == "coo":
            from ._coo import COO

            if len(kwargs) != 0:
                raise ValueError(f"Extra kwargs found: {kwargs}")
            return COO.from_iter(
                self.data,
                shape=self.shape,
                fill_value=self.fill_value,
                dtype=self.dtype,
            )

        return self.asformat("coo").asformat(format, **kwargs)
Beispiel #4
0
def confusion_matrix(dataset: LabeledDataset,
                     model: TopicModel,
                     n_topic: Optional[int] = None) -> da.array:
    labels = dataset.get_labels_vect()
    predicted = model.get_labels()
    L = labels.shape[0]
    P = predicted.shape[0]
    if L != P:
        raise ValueError("Mismatching in document number")
    if n_topic:
        shape = (np.max(labels) + 1, n_topic + 1)
    else:
        shape = (
            np.max(labels) + 1,
            np.max(predicted) + 1,
        )
    return COO.from_iter(
        (np.ones_like(labels, dtype=np.dtype("u1")), (labels, predicted)),
        shape=shape,
        fill_value=0,
        dtype=np.dtype(int),
    )