1

2つの10x2x2complex64アレイがあります。1つまたは両方で2x2配列のどれがすべてゼロではないかを調べたい:

import numpy
a = numpy.zeros((10,2,2), "complex64")
b = numpy.ones((10,2,2), "complex64")

empty_one_or_both = (a.reshape(10,4) != 0).all(axis=1) * (b.reshape(10,4) != 0).all(axis=1) # EDIT

目標は、次のような空でないペアに対してのみ他の操作を実行することです。

numpy.sqrt(a[empty_one_or_both])

もっと良い方法はありますか?

4

1 に答える 1

2

numpy 1.7の時点で、次のことができます。

a.all(axis=(1, 2)) & b.all(axis=(1, 2))

詳細についてはドキュメントを参照してください。ただし、古いバージョンを使用している場合は、形状を変更するか、all(1).all(1)を実行する必要があると思います。

于 2012-04-18T16:12:41.650 に答える