@@ -21,38 +21,6 @@ def __repr__(self):
2121 elements = dict (zip (self ._indices , self ._values ))
2222 return f'SparseVector({ elements } , { self .dimensions ()} )'
2323
24- def _from_dict (self , d , dim ):
25- if dim is None :
26- raise ValueError ('dimensions required' )
27-
28- elements = [(i , v ) for i , v in d .items ()]
29- elements .sort ()
30- self ._dim = int (dim )
31- self ._indices = [int (v [0 ]) for v in elements ]
32- self ._values = [float (v [1 ]) for v in elements ]
33-
34- def _from_sparse (self , value ):
35- value = value .tocoo ()
36-
37- if value .ndim == 1 :
38- self ._dim = value .shape [0 ]
39- elif value .ndim == 2 and value .shape [0 ] == 1 :
40- self ._dim = value .shape [1 ]
41- else :
42- raise ValueError ('expected ndim to be 1' )
43-
44- if hasattr (value , 'coords' ):
45- # scipy 1.13+
46- self ._indices = value .coords [0 ].tolist ()
47- else :
48- self ._indices = value .col .tolist ()
49- self ._values = value .data .tolist ()
50-
51- def _from_dense (self , value ):
52- self ._dim = len (value )
53- self ._indices = [i for i , v in enumerate (value ) if v != 0 ]
54- self ._values = [float (value [i ]) for i in self ._indices ]
55-
5624 def dimensions (self ):
5725 return self ._dim
5826
@@ -87,6 +55,38 @@ def to_binary(self):
8755 nnz = len (self ._indices )
8856 return pack (f'>iii{ nnz } i{ nnz } f' , self ._dim , nnz , 0 , * self ._indices , * self ._values )
8957
58+ def _from_dict (self , d , dim ):
59+ if dim is None :
60+ raise ValueError ('dimensions required' )
61+
62+ elements = [(i , v ) for i , v in d .items ()]
63+ elements .sort ()
64+ self ._dim = int (dim )
65+ self ._indices = [int (v [0 ]) for v in elements ]
66+ self ._values = [float (v [1 ]) for v in elements ]
67+
68+ def _from_sparse (self , value ):
69+ value = value .tocoo ()
70+
71+ if value .ndim == 1 :
72+ self ._dim = value .shape [0 ]
73+ elif value .ndim == 2 and value .shape [0 ] == 1 :
74+ self ._dim = value .shape [1 ]
75+ else :
76+ raise ValueError ('expected ndim to be 1' )
77+
78+ if hasattr (value , 'coords' ):
79+ # scipy 1.13+
80+ self ._indices = value .coords [0 ].tolist ()
81+ else :
82+ self ._indices = value .col .tolist ()
83+ self ._values = value .data .tolist ()
84+
85+ def _from_dense (self , value ):
86+ self ._dim = len (value )
87+ self ._indices = [i for i , v in enumerate (value ) if v != 0 ]
88+ self ._values = [float (value [i ]) for i in self ._indices ]
89+
9090 @classmethod
9191 def from_text (cls , value ):
9292 elements , dim = value .split ('/' , 2 )
0 commit comments