teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

oprator モジュールを使わないで lamda 式を直接書いた。

2016/03/11 07:25

投稿

ef3
ef3

スコア10

answer CHANGED
@@ -8,11 +8,15 @@
8
8
  print np.dot(v1,v2)
9
9
  ```
10
10
 
11
- [NumPy](http://www.numpy.org/) を使わずイテレータを使った場合(乗算演算子のラムダ式を使うので operator モジュール の mul を使っています)
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(mul, a1, a2))
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を使う例を追加

2016/03/11 07:25

投稿

ef3
ef3

スコア10

answer CHANGED
@@ -1,4 +1,4 @@
1
- Python では [numpy](http://www.numpy.org/) を使うと dot 関数でベクトルの内積を求めることが出来ます。
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
  ```