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

質問編集履歴

1

「ちなみに...」を追記

2019/09/25 03:29

投稿

takashim
takashim

スコア124

title CHANGED
File without changes
body CHANGED
@@ -44,10 +44,38 @@
44
44
  ```
45
45
 
46
46
  ## 知りたいこと
47
+ A. なぜNumpyの方が遅くなってしまうのでしょうか。
47
- A. おそらく、実際はNumpyの方が速いのではと思いますが、どなたか同じ方法で検証してみて頂けないでしょうか。
48
+ B. おそらく、実際はNumpyの方が速いのではと思いますが、どなたか同じ方法で検証してみて頂けないでしょうか。
48
- B. なぜNumpyの方が遅くなってしまうのでしょうか。
49
49
  C. ついでに、timeitにglobals()を付けると結果が大きく変わるのはなぜでしょうか。
50
50
 
51
+ ### ちなみに...
52
+ 本件と直接関係ありませんが、他のコードにて、
53
+ np.linalg.normが異常に遅く、普通のpythonのコードに書き換えたことがあります。
54
+ これはありえない?
55
+ ```
56
+ a1 = np.random.randint(1,10, (2))
57
+ a2 = np.random.randint(1,10, (2))
58
+ l1 = [random.randint(1,10) for i in range(2)]
59
+ l2 = [random.randint(1,10) for i in range(2)]
60
+
61
+ #a1=[8 9], <class 'numpy.ndarray'>
62
+ #a2=[9 1], <class 'numpy.ndarray'>
63
+ #l1=[1, 7], <class 'list'>
64
+ #l2=[9, 8], <class 'list'>
65
+
66
+ %%timeit
67
+ length1 = ((l2[0] - l1[0]) ** 2 + (l2[1] - l1[1]) ** 2) ** 0.5
68
+
69
+ #1.14 µs ± 18.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
70
+
71
+ %%timeit
72
+ length2 = np.linalg.norm(a2 - a1)
73
+ length2
74
+
75
+ #4.99 µs ± 301 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
76
+ ```
77
+
78
+
51
79
  ### 環境
52
80
  Python 3.7.1
53
81
  Numpy 1.16.4