Robert Robert - 2 months ago 10
Python Question

Testing if all values in a numpy array are equal

I have an numpy one dimensional array c that is supposed to be filled with the contents of

a + b
. I'm first executing
a + b
on a device using
PyOpenCL


I want to quickly determine the correctness of the result array
c
in python using numpy slicing.

This is what I currently have

def python_kernel(a, b, c):
temp = a + b
if temp[:] != c[:]:
print "Error"
else:
print "Success!"


But I get the error:


ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()


But it seems
a.any
or
a.all
will just determine whether the values aren't 0.

What should I do if I want to test if all of the scalers in the numpy array temp are equal to every value in the numpy array c?

Answer

Why not just use numpy.array_equal(a1, a2)[docs] from NumPy's functions?

Comments