# not_equal¶

not_equal(x1: array, x2: array, /) array

Computes the truth value of `x1_i != x2_i` for each element `x1_i` of the input array `x1` with the respective element `x2_i` of the input array `x2`.

Parameters:
• x1 (array) – first input array. May have any data type.

• x2 (array) – second input array. Must be compatible with `x1` (see Broadcasting).

Returns:

out (array) – an array containing the element-wise results. The returned array must have a data type of `bool`.

Notes

Special Cases

For real-valued floating-point operands,

• If `x1_i` is `NaN` or `x2_i` is `NaN`, the result is `True`.

• If `x1_i` is `+infinity` and `x2_i` is `-infinity`, the result is `True`.

• If `x1_i` is `-infinity` and `x2_i` is `+infinity`, the result is `True`.

• If `x1_i` is a finite number, `x2_i` is a finite number, and `x1_i` does not equal `x2_i`, the result is `True`.

• In the remaining cases, the result is `False`.

For complex floating-point operands, let `a = real(x1_i)`, `b = imag(x1_i)`, `c = real(x2_i)`, `d = imag(x2_i)`, and

• If `a`, `b`, `c`, or `d` is `NaN`, the result is `True`.

• In the remaining cases, the result is the logical OR of the equality comparison between the real values `a` and `c` (real components) and between the real values `b` and `d` (imaginary components), as described above for real-valued floating-point operands (i.e., `a != c OR b != d`).

Note

For discussion of complex number equality, see Complex Numbers.

Changed in version 2022.12: Added complex data type support.