回答編集履歴

1

追記

2020/05/18 00:38

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -7,3 +7,31 @@
7
7
  arr[arr<=0] = 0
8
8
 
9
9
  ```
10
+
11
+
12
+
13
+ ---
14
+
15
+ > ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
16
+
17
+
18
+
19
+ このエラーは i<0 を真偽値に変換できないことに由来します。
20
+
21
+ メッセージに従って仮にa.allを適用するとするならば、次のように書けばとおります。
22
+
23
+ ```Python
24
+
25
+ re_list=[i if (i<0).all() else 0 for i in arr]
26
+
27
+ ```
28
+
29
+
30
+
31
+ しかしこれは想定どおりには動作しないでしょう。
32
+
33
+
34
+
35
+ iには何が束縛されるのか、i<0は何を返すのか、allメソッドはどんな働きをするのか。
36
+
37
+ この辺りを抑えておかないとなかなか理解し難いと思います。