質問編集履歴
1
「ちなみに...」を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -44,10 +44,38 @@
|
|
44
44
|
```
|
45
45
|
|
46
46
|
## 知りたいこと
|
47
|
+
A. なぜNumpyの方が遅くなってしまうのでしょうか。
|
47
|
-
|
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
|