回答編集履歴
3
さらに追記
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
quiquiさんの指摘でバグに気付きました。大変失礼いたしました。
|
2
|
+
|
3
|
+
さらに、そもそもsplitがいらないことにも気付いてしまいました...
|
2
4
|
|
3
5
|
コードを、それぞれ下記のように読み替えてください。
|
4
6
|
|
@@ -8,15 +10,37 @@
|
|
8
10
|
|
9
11
|
sdata = ["[0.2]","[0.3]"]
|
10
12
|
|
11
|
-
cov = np.array([float(sdata[i].replace("[","").replace("]","")
|
13
|
+
cov = np.array([float(sdata[i].replace("[","").replace("]","")) for i in range(2)])
|
12
14
|
|
13
15
|
```
|
14
16
|
|
15
17
|
```Python
|
16
18
|
|
17
|
-
cov = np.array([float(s.replace("[","").replace("]","")
|
19
|
+
cov = np.array([float(s.replace("[","").replace("]","")) for s in sdata])
|
18
20
|
|
19
21
|
```
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
ついでに、mapを用いる場合
|
28
|
+
|
29
|
+
```Python
|
30
|
+
|
31
|
+
def func(str):
|
32
|
+
|
33
|
+
return float(str.replace("[","").replace("]",""))
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
cov = np.array(list(map(func, sdata)))
|
38
|
+
|
39
|
+
```
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
ラムダ式を使うとワンラインで書けますが、ちょっと気持ち悪い感じになります。
|
20
44
|
|
21
45
|
|
22
46
|
|
2
修正
test
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
quiquiさんの指摘でバグに気付きました。大変失礼いたしました。
|
2
|
+
|
3
|
+
コードを、それぞれ下記のように読み替えてください。
|
4
|
+
|
5
|
+
```Python
|
6
|
+
|
7
|
+
import numpy as np
|
8
|
+
|
9
|
+
sdata = ["[0.2]","[0.3]"]
|
10
|
+
|
11
|
+
cov = np.array([float(sdata[i].replace("[","").replace("]","").split()[0]) for i in range(2)])
|
12
|
+
|
13
|
+
```
|
14
|
+
|
15
|
+
```Python
|
16
|
+
|
17
|
+
cov = np.array([float(s.replace("[","").replace("]","").split()[0]) for s in sdata])
|
18
|
+
|
19
|
+
```
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
以下、元の回答
|
24
|
+
|
25
|
+
---
|
26
|
+
|
1
27
|
これなら通ります。
|
2
28
|
|
3
29
|
```Python
|
@@ -31,3 +57,5 @@
|
|
31
57
|
|
32
58
|
|
33
59
|
内包表記は偉大です。
|
60
|
+
|
61
|
+
|
1
さらなる質問に対して
test
CHANGED
@@ -13,3 +13,21 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
splitの返り値がリストだからでしょう。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
---
|
20
|
+
|
21
|
+
> もし、sdataが6個の要素を持つとしたら...
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
```
|
26
|
+
|
27
|
+
cov = np.array([map(float, s.replace("[","").replace("]","").split()[0]) for s in sdata])
|
28
|
+
|
29
|
+
```
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
内包表記は偉大です。
|