私が配列を持っているとしましょう:
>>> import numpy as np
>>> myarr = np.array([[1],[2],[3],[2]])
myarr
論理インデックスを使用して、2に等しくないサブ配列を返したいと思います。
>>> subarr = myarr[myarr != 2]
>>> print subarr
[1 3]
したがって、myarr.shape = (4,1)
しかしsubarr.shape = (2,)
。
論理インデックスがディメンション2に影響を与えないのに、ディメンション2のサイズが変更されるのはなぜですか。出力の形状を簡単に変更することもできますが、コードで論理インデックスを頻繁に使用する必要がある場合は、余分なディメンション(つまり、実行している論理スライスに明らかに関係のないディメンション)を常に考慮する必要はありません。それは変わったかもしれません。
この(N、1)->(K、)の例は特に厄介です。これは、1行1列の配列の論理スライスも1行1列の配列でなければならないためです。
NumPyスライス操作で単純な配列の次元をそのままにしておくためのよりクリーンな方法が必要だと思います。助言がありますか?