import numpy as np arr = np.array([2, 4, 6, 7]) print(arr[np.array([True, True, True, False])])
上記のようなコードで出力結果が「2 4 6」と出ました。
恐らくTrueの部分を出力したと思われるのですが、何をみて判断しているのか分かりません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
python
1arr = np.array([2, 4, 6, 7])
この行で、arrが[2,4,6,7]という配列となっています。
python
1print(arr[np.array([True, True, True, False])])
その上で、print(): ()内を出力
()内がarr[np.array([True, True, True, False])
であり、
arr
の配列内の、Trueにあたる部分を出力するということになります、
このとき、np.array([True, True, True, False]
は最後だけFalse
つまり、配列の前3つは表示されるような命令になるので、
2 4 6 と表示されるわけです。
投稿2020/07/27 01:34
総合スコア26
0
日本語だとブールインデックスと呼ばれているものですね。
Boolean or “mask” index arrays
恐らくTrueの部分を出力したと思われる
そうです。
【NumPy入門】配列の基礎的な扱い方(ndarray)
【要素へのアクセス②】ブールインデックス(マスク処理)
配列に対して同じサイズの論理値(True/False)を格納した配列を与えると、trueの要素についてのみ処理を行うことができる機能です。
投稿2020/07/26 12:20
総合スコア10760
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/27 13:18
2020/07/27 13:25
2020/07/27 22:00
2020/07/27 23:58
0
恐らくTrueの部分を出力したと思われるのですが
その理解でよいです。Bool
値に対応する位置の値が出ています。
詳しく知りたい場合はBoolean array indexingを参照ください。
投稿2020/07/26 12:15
総合スコア38341
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
numpy の bool indexing という機能です。
配列と同じ長さの bool 配列を渡すと、True の要素に対応する値だけ取り出せます。
2 | 4 | 6 | 8 |
---|---|---|---|
True | True | True | False |
↓
2 | 4 | 6 |
---|
この機能はなにに便利かというと、numpy 配列に比較演算をすると、bool 配列ができるので、それを [] の中に入れて条件を満たす要素だけ取り出すという使い方ができます。
python
1import numpy as np 2 3a = np.array([1, 2, 3, 4]) 4 5print(a % 2 == 0) 6# [False True False True] 7 8print(a[a % 2 == 0]) 9# [2 4]
投稿2020/07/26 12:14
編集2020/07/27 01:39総合スコア21956
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/27 13:12
2020/07/27 14:30
2020/07/27 23:57