回答編集履歴
2
不具合の原因を追加
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
マークダウンのミスを修正
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]]
|