アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のpythonのインタプリターの操作で、
>>> a = np.arange(12).reshape(2,2,3)
>>> a
array([[[ 0, 1, 2],
 [ 3, 4, 5]],

 [[ 6, 7, 8],
 [ 9, 10, 11]]])
として、

>>> np.all(a,axis=-1)
array([[False, True],
 [ True, True]])
になるのは理解できるのですが、

>>> np.where(np.all(a,axis=-1))
(array([0, 1, 1]), array([1, 0, 1]))

になるのが理解できません。
(array([0, 1, 1]), array([1, 0, 1]))
はどの様にして出てくるのでしょうか?

A 回答 (1件)

2次元配列で、x行y列の要素の添え字を(x,y)と表すとして、


[[ False,True], [True,True]] の添え字は下記になります。
[[ False(0,0), True(0,1) ],[True(1,0),True(1,1)]]

np.where()はノンゼロな要素の添え字を返すので、
[True(0,1),True(1,0),True(1,1)]が選ばれて、
行の値だけ集めて配列(0,1,1),
列の値だけ集めて配列(1,0,1)――を返します。

#検索しただけなので間違ってるかも。
    • good
    • 0
この回答へのお礼

やっと読み方が分かりました。ありがとうございます。

お礼日時:2022/03/21 22:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!