回答編集履歴

2

不具合の原因を追加

2020/04/06 03:48

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -1,4 +1,30 @@
1
+ 動作がおかしい原因は、元の配列(`array`)の要素のデータ型が **'int64'** であるため、
2
+
3
+
4
+
5
+ ```Python
6
+
7
+ array[0]=array[0]/array[0].sum()
8
+
9
+ ```
10
+
11
+ にて代入をした段階で、データが整数にまるめられるためです。
12
+
13
+ 解決方法としては、最初の段階で
14
+
15
+
16
+
17
+ ```Python
18
+
19
+ array = array.astype('float')
20
+
21
+ ```
22
+
23
+ として、データ型を少数にしておくと良いかと思います。
24
+
25
+
26
+
1
- Broadcastを使って計算するのであれば、こうなります。
27
+ が、Broadcastを使ってまとめて計算するのであれば、データ型を変更する必用もなく、以下のように書くとができます。
2
28
 
3
29
 
4
30
 

1

マークダウンのミスを修正

2020/04/06 03:48

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.normalize.html
37
+ [https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.normalize.html](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.normalize.html)
38
38
 
39
39
 
40
40
 
@@ -50,8 +50,6 @@
50
50
 
51
51
  ret = normalize(a, axis=1, norm='l1')
52
52
 
53
- print(ret)
54
-
55
53
  #[[0.55 0.1 0.35 ]
56
54
 
57
55
  # [0.33333333 0.2 0.46666667]]
@@ -60,8 +58,6 @@
60
58
 
61
59
  ret = normalize(a, axis=0, norm='l1')
62
60
 
63
- print(ret)
64
-
65
61
  #[[0.52380952 0.25 0.33333333]
66
62
 
67
63
  # [0.47619048 0.75 0.66666667]]