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