From 1994379df949e9a4cc39939cf559235e36961c19 Mon Sep 17 00:00:00 2001 From: janezd Date: Thu, 8 Feb 2024 19:56:08 +0100 Subject: [PATCH] Text to Columns: Fix dtype for empty arrays --- orangecontrib/prototypes/widgets/owtexttocolumns.py | 3 ++- .../prototypes/widgets/tests/test_owtexttocolumns.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/orangecontrib/prototypes/widgets/owtexttocolumns.py b/orangecontrib/prototypes/widgets/owtexttocolumns.py index 8a57e7bb..3507171b 100644 --- a/orangecontrib/prototypes/widgets/owtexttocolumns.py +++ b/orangecontrib/prototypes/widgets/owtexttocolumns.py @@ -31,7 +31,8 @@ def __call__(self, data): column = data.get_column(self.attr) values = [{ss.strip() for ss in s.split(self.delimiter)} for s in column] - return {v: np.array([i for i, xs in enumerate(values) if v in xs]) + return {v: np.array([i for i, xs in enumerate(values) if v in xs], + dtype=int) for v in self.new_values} def __eq__(self, other): diff --git a/orangecontrib/prototypes/widgets/tests/test_owtexttocolumns.py b/orangecontrib/prototypes/widgets/tests/test_owtexttocolumns.py index cd7ca265..c685f090 100644 --- a/orangecontrib/prototypes/widgets/tests/test_owtexttocolumns.py +++ b/orangecontrib/prototypes/widgets/tests/test_owtexttocolumns.py @@ -47,6 +47,17 @@ def test_split_column(self): np.testing.assert_equal(shared["f o"], [0, 1]) np.testing.assert_equal(shared["o"], [2]) + def test_no_known_values(self): + sc = SplitColumn(self.data, self.data.domain.metas[0], ",") + data = Table.from_numpy( + self.data.domain, np.zeros((3, 1)), None, + np.array([["x"] * 2] * 3)) + shared = sc(data) + for attr in ("a", "bbb", "d"): + self.assertEqual(shared[attr].size, 0) + oh = OneHotStrings(sc, attr) + np.testing.assert_equal(oh(data), [0, 0, 0]) + def test_one_hot_strings(self): attr = self.data.domain.metas[0] sc = SplitColumn(self.data, attr, ",")