0

私は2つのnumpy配列を持っていて、それらのうち大きい方を見つけようとしています(要素ごと、つまり、すべての要素が大きいはずです)

import numpy as np

a = np.array([4,5,6])
b = np.array([7,8,9])

if b > a:
    print 'True'

しかし、目的の出力が得られず、エラーが発生します

4

3 に答える 3

2

使用するnp.all()

In [1]: import numpy as np

In [2]: a = np.array([4,5,6])

In [3]: b = np.array([7,8,9])

In [4]: np.all(b > a)
Out[4]: True
于 2015-01-31T21:22:33.697 に答える
1

b > aTrue/False値を含む配列を生成します。

ただし、Python は、複数の要素を持つ NumPy 配列が か かどうかを判断できませTrueFalse。のような配列はどのようarray([True, False, True])に評価されるべきですか? ValueError潜在的なあいまいさのためにAが発生します。

代わりに、すべての値が であるb > aかどうかを確認する必要がありますTrueall()これを行うにはNumPy を使用します。

if (b > a).all():
    print 'True'
于 2015-01-31T21:26:00.720 に答える
1
if all(b>a):
   print 'True'

多次元配列の場合、次を使用します。

if np.all(b>a):
   print 'True'

ただしall()、1 次元配列の場合は高速であり、配列が非常に大きい場合に役立つ場合があります。

>>> timeit('a = np.array([4,5,6]); b = np.array([7,8,9]); all(a>b)',number=100000,setup='import numpy as np')
0.34104180335998535
>>> timeit('a = np.array([4,5,6]); b = np.array([7,8,9]); np.all(a>b)',number=100000,setup='import numpy as np')
0.9201719760894775
于 2015-01-31T21:22:17.830 に答える