numpyの配列は、そのすべての国境に0を持っているかどうかを確認

ルカ:

どのようなことは多次元numpyの配列は、すべての側面に0を持っているかどうかを確認するための最速の方法だろう。

だから、簡単な2次元例えば、私が持っています:

x = np.random.rand(5, 5)
assert np.sum(x[0:,  0]) == 0
assert np.sum(x[0,  0:]) == 0
assert np.sum(x[0:, -1]) == 0
assert np.sum(x[-1, 0:]) == 0

これは右に2次元の場合のためにOKですが、高次元のために書くことはビット面倒であり、私はそれを効率的にするために、ここで使用してもより保守することができますいくつかの巧妙なnumpyのトリックがある場合、私は思っていました。

リチャード頬:

ここではあなたがそれを行うことができます方法は次のとおりです。

assert(all(np.all(np.take(x, index, axis=axis) == 0)
           for axis in range(x.ndim)
           for index in (0, -1)))

np.take 「空想」のインデックスと同じことを行います。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=376941&siteId=1