質問編集履歴

3

追記及び修正のお願い

2020/02/12 07:18

投稿

hoshi1996
hoshi1996

スコア53

test CHANGED
File without changes
test CHANGED
@@ -44,4 +44,36 @@
44
44
 
45
45
 
46
46
 
47
- また今扱っているsparse行列は大きな規模であるため、sparse行列のまま置換を行いたいです
47
+ また今扱っているsparse行列は大きな規模であるため、sparse行列のまま置換を行いたいです
48
+
49
+
50
+
51
+ 追記
52
+
53
+
54
+
55
+ ```python
56
+
57
+ def replace_values(sparse_matrix, threshold):
58
+
59
+ import numpy
60
+
61
+ import scipy
62
+
63
+ bool_ = [sparse_matrix.data > threshold][0]# 閾値を超える要素はTrueとなるbool値
64
+
65
+ data = numpy.where(bool_)
66
+
67
+ nonzero = numpy.nonzero(sparse_matrix)# nonzeroの要素番号
68
+
69
+ values = bool_ * sparse_matrix.data# 閾値を超えない要素をゼロにする
70
+
71
+ values = values[~(values == 0)]#ゼロを削除
72
+
73
+ return scipy.sparse.csr_matrix((values,(nonzero[0][data], nonzero[1][data])))
74
+
75
+ ```
76
+
77
+ 今この関数で望んだような行列を取得することができますが、このコードは冗長であるように感じます。実際、実行時間も長いと感じました。
78
+
79
+ このコードの修正をお願いしたいです。

2

型の追加

2020/02/12 07:18

投稿

hoshi1996
hoshi1996

スコア53

test CHANGED
File without changes
test CHANGED
@@ -28,6 +28,14 @@
28
28
 
29
29
  #(2, 1) 0.1
30
30
 
31
+
32
+
33
+ type(A)
34
+
35
+ #scipy.sparse.csr.csr_matrix
36
+
37
+
38
+
31
39
  ```
32
40
 
33
41
 

1

誤字

2020/02/12 05:41

投稿

hoshi1996
hoshi1996

スコア53

test CHANGED
File without changes
test CHANGED
@@ -36,4 +36,4 @@
36
36
 
37
37
 
38
38
 
39
- また今扱っているsparse行列は大きな規模であるため、sparse行列のまま置換を行いたいです
39
+ また今扱っているsparse行列は大きな規模であるため、sparse行列のまま置換を行いたいです