回答編集履歴
2
oprator モジュールを使わないで lamda 式を直接書いた。
test
CHANGED
@@ -18,11 +18,9 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
[NumPy](http://www.numpy.org/) を使わずイテレータを使った場合
|
21
|
+
[NumPy](http://www.numpy.org/) を使わずイテレータを使った場合。
|
22
22
|
|
23
23
|
```python
|
24
|
-
|
25
|
-
from operator import mul
|
26
24
|
|
27
25
|
a1 = [1,2,3]
|
28
26
|
|
@@ -30,6 +28,16 @@
|
|
30
28
|
|
31
29
|
|
32
30
|
|
33
|
-
print sum(map(m
|
31
|
+
print sum(map(lambda x, y: x * y, a1, a2))
|
34
32
|
|
35
33
|
```
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
リスト内包表現と zip の組み合わせの方が python ぽいかもしれません。
|
38
|
+
|
39
|
+
```python
|
40
|
+
|
41
|
+
reduce(lambda x, y: x + y, [x * y for x, y in zip(a1, a2)])
|
42
|
+
|
43
|
+
```
|
1
NumPyを使わないでmapを使う例を追加
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Python では [
|
1
|
+
Python では [NumPy](http://www.numpy.org/) を使うと dot 関数でベクトルの内積を求めることが出来ます。
|
2
2
|
|
3
3
|
```python
|
4
4
|
|
@@ -15,3 +15,21 @@
|
|
15
15
|
print np.dot(v1,v2)
|
16
16
|
|
17
17
|
```
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
[NumPy](http://www.numpy.org/) を使わずイテレータを使った場合(乗算演算子のラムダ式を使うので operator モジュール の mul を使っています)。
|
22
|
+
|
23
|
+
```python
|
24
|
+
|
25
|
+
from operator import mul
|
26
|
+
|
27
|
+
a1 = [1,2,3]
|
28
|
+
|
29
|
+
a2 = [4,5,6]
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
print sum(map(mul, a1, a2))
|
34
|
+
|
35
|
+
```
|