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

質問編集履歴

4

目的について記載。

2019/12/25 10:03

投稿

Purindle
Purindle

スコア7

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  以下を実現したいのですが、ループのネストをせずに実現することは可能でしょうか。
4
+ ※目的は処理の高速化です。
4
5
 
5
6
  numpyをうまく使えば高速に行えるのではないかと考えているのですが、
6
7
  妙案が浮かばず。。。
@@ -11,11 +12,11 @@
11
12
 
12
13
  #### 得たい結果
13
14
  各インデックスの値とそのインデックス以降の値を比較して、
14
- 10以上になった後、10以下になった場合、
15
+ * 10以上になった後、10以下になった場合、
15
16
   または、10以下になった後、10以上になった場合、
16
17
   または、どの条件にも該当しない場合:0
17
- 10以下に一度もなっていない状態で、20以上になった場合:1
18
+ * 10以下に一度もなっていない状態で、20以上になった場合:1
18
- 10以上に一度もなっていない状態で、20以下がった場合:2
19
+ * 10以上に一度もなっていない状態で、20以下がった場合:2
19
20
 
20
21
  ##### 入力1
21
22
  [10, 0, 20, 9, 9, 9, 0, 29]

3

得たい結果の説明を修正。

2019/12/25 10:03

投稿

Purindle
Purindle

スコア7

title CHANGED
File without changes
body CHANGED
@@ -11,11 +11,11 @@
11
11
 
12
12
  #### 得たい結果
13
13
  各インデックスの値とそのインデックス以降の値を比較して、
14
- ・20以上になった場合:1
15
- ・20以下がった場合:2
16
14
  ・10以上になった後、10以下になった場合、
17
15
   または、10以下になった後、10以上になった場合、
18
-  または、いずれにも該当しない場合:0
16
+  または、どの条件にも該当しない場合:0
17
+ ・10以下に一度もなっていない状態で、20以上になった場合:1
18
+ ・10以上に一度もなっていない状態で、20以下がった場合:2
19
19
 
20
20
  ##### 入力1
21
21
  [10, 0, 20, 9, 9, 9, 0, 29]

2

得たい結果の開設を修正し、入出力の例を増やしました。

2019/12/25 09:58

投稿

Purindle
Purindle

スコア7

title CHANGED
File without changes
body CHANGED
@@ -11,21 +11,42 @@
11
11
 
12
12
  #### 得たい結果
13
13
  各インデックスの値とそのインデックス以降の値を比較して、
14
- ・10以上、10以下になった場合:0
15
14
  ・20以上になった場合:1
16
15
  ・20以下がった場合:2
16
+ ・10以上になった後、10以下になった場合、
17
+  または、10以下になった後、10以上になった場合、
18
+  または、いずれにも該当しない場合:0
19
+
17
- ##### 入力
20
+ ##### 入力1
18
21
  [10, 0, 20, 9, 9, 9, 0, 29]
19
22
 
20
- ##### 出力
23
+ ##### 出力1
21
24
  [0, 1, 2, 1, 1, 1, 1, 0]
22
25
 
26
+ ##### 入力2
27
+
28
+ [25, 36, 14, 50, 0]
29
+
30
+ ##### 出力2
31
+
32
+ [0, 2, 1, 2, 0]
33
+
34
+ ##### 入力3
35
+
36
+ [25, 24, 24, 24, 24]
37
+
38
+ ##### 出力3
39
+
40
+ [0, 0, 0, 0, 0]
41
+
42
+
43
+
23
44
  ### 該当のソースコード
24
45
 
25
46
  ```python3.6
26
47
  import numpy as np
27
48
 
28
- arr = np.array([10, 0, 20, 9, 9, 9, 0, 29])
49
+ arr = np.array([25, 36, 14, 50, 0])
29
50
  result = [0] * len(arr)
30
51
  for i, target in enumerate(arr) :
31
52
  is_up = False

1

タグ追加

2019/12/25 09:56

投稿

Purindle
Purindle

スコア7

title CHANGED
File without changes
body CHANGED
File without changes