Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions i18n/si/msgs.jaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
__init__.py:
def `networks`:
networks: false
utils.py:
def `items_from_distmatrix`:
label: oznaka
def `weights_from_distances`:
All distances must be positive: Vse razdalje morajo biti pozitivne
network/base.py:
class `Network`:
def `__init__`:
Expand Down Expand Up @@ -758,11 +763,6 @@ widgets/ownxsinglemode.py:
def `main`:
/Users/janez/Downloads/100_petrozavodsk_171_events_no_sqrt.net: false
__main__: false
widgets/utils.py:
def `items_from_distmatrix`:
label: oznaka
def `weights_from_distances`:
All distances must be positive: Vse razdalje morajo biti pozitivne
widgets/tests/utils.py:
class `NetworkTest`:
def `_read_network`:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from Orange.misc import DistMatrix
from Orange.data import Table, Domain, ContinuousVariable
from orangecontrib.network.widgets.utils import items_from_distmatrix, weights_from_distances
from orangecontrib.network.utils import items_from_distmatrix, weights_from_distances


class TestItemsFromMatrix(unittest.TestCase):
Expand Down
41 changes: 41 additions & 0 deletions orangecontrib/network/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import numpy as np
from Orange.data import Table, StringVariable, Domain


def items_from_distmatrix(matrix):
if matrix.row_items is not None:
row_items = matrix.row_items
if isinstance(row_items, Table):
if matrix.axis == 1:
items = row_items
else:
items = [[v.name] for v in row_items.domain.attributes]
else:
items = [[str(x)] for x in matrix.row_items]
else:
items = [[str(i)] for i in range(1, 1 + matrix.shape[0])]
if not isinstance(items, Table):
items = Table.from_list(
Domain([], metas=[StringVariable('label')]),
items)
return items


def weights_from_distances(weights):
weights = weights.astype(np.float64)

if weights.size == 0:
return weights

mi, ma = np.nanmin(weights), np.nanmax(weights)
assert mi >= 0, "All distances must be positive"

if ma - mi < 1e-6:
return np.ones(weights.shape)

weights /= ma
weights *= np.log(10)
np.exp(weights, out=weights)
np.reciprocal(weights, out=weights)

return weights
3 changes: 1 addition & 2 deletions orangecontrib/network/widgets/OWNxFromDistances.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@
from orangecontrib.network.network import Network
from orangecontrib.network.network.base import UndirectedEdges, DirectedEdges
# This enables summarize in widget preview, pylint: disable=unused-import
import orangecontrib.network.widgets
from orangecontrib.network.widgets.utils import items_from_distmatrix, weights_from_distances
from orangecontrib.network.utils import items_from_distmatrix, weights_from_distances


class QIntValidatorWithFixup(QIntValidator):
Expand Down
4 changes: 1 addition & 3 deletions orangecontrib/network/widgets/OWNxNeighbor.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import numpy as np
from numpy.lib.stride_tricks import as_strided
import scipy.sparse as sp

from AnyQt.QtCore import Qt
Expand All @@ -15,8 +14,7 @@
from orangecontrib.network.network import Network
from orangecontrib.network.network.base import UndirectedEdges, DirectedEdges
# This enables summarize in widget preview, pylint: disable=unused-import
import orangecontrib.network.widgets
from orangecontrib.network.widgets.utils import items_from_distmatrix, weights_from_distances
from orangecontrib.network.utils import items_from_distmatrix, weights_from_distances


class OWNxNeighbor(widget.OWWidget):
Expand Down
42 changes: 1 addition & 41 deletions orangecontrib/network/widgets/utils.py
Original file line number Diff line number Diff line change
@@ -1,41 +1 @@
import numpy as np
from Orange.data import Table, StringVariable, Domain


def items_from_distmatrix(matrix):
if matrix.row_items is not None:
row_items = matrix.row_items
if isinstance(row_items, Table):
if matrix.axis == 1:
items = row_items
else:
items = [[v.name] for v in row_items.domain.attributes]
else:
items = [[str(x)] for x in matrix.row_items]
else:
items = [[str(i)] for i in range(1, 1 + matrix.shape[0])]
if not isinstance(items, Table):
items = Table.from_list(
Domain([], metas=[StringVariable('label')]),
items)
return items


def weights_from_distances(weights):
weights = weights.astype(np.float64)

if weights.size == 0:
return weights

mi, ma = np.nanmin(weights), np.nanmax(weights)
assert mi >= 0, "All distances must be positive"

if ma - mi < 1e-6:
return np.ones(weights.shape)

weights /= ma
weights *= np.log(10)
np.exp(weights, out=weights)
np.reciprocal(weights, out=weights)

return weights
from orangecontrib.network.utils import items_from_distmatrix, weights_from_distances