(l-onnx-doc-NonZero)= # NonZero (l-onnx-op-nonzero-13)= ## NonZero - 13 ### Version - **name**: [NonZero (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#NonZero) - **domain**: `main` - **since_version**: `13` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 13**. ### Summary Returns the indices of the elements that are non-zero (in row-major order - by dimension). NonZero behaves similar to numpy.nonzero: https://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html, but for scalar input, NonZero produces output shape (0, N) instead of (1, N), which is different from Numpy's behavior. ### Inputs - **X** (heterogeneous) - **T**: input ### Outputs - **Y** (heterogeneous) - **tensor(int64)**: output ### Type Constraints * **T** in ( `tensor(bfloat16)`, `tensor(bool)`, `tensor(complex128)`, `tensor(complex64)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(string)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain to all tensor types. ```{toctree} text_diff_NonZero_9_13 ``` (l-onnx-op-nonzero-9)= ## NonZero - 9 ### Version - **name**: [NonZero (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators.md#NonZero) - **domain**: `main` - **since_version**: `9` - **function**: `False` - **support_level**: `SupportType.COMMON` - **shape inference**: `True` This version of the operator has been available **since version 9**. ### Summary Returns the indices of the elements that are non-zero (in row-major order - by dimension). NonZero behaves similar to numpy.nonzero: https://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html, but for scalar input, NonZero produces output shape (0, N) instead of (1, N), which is different from Numpy's behavior. ### Inputs - **X** (heterogeneous) - **T**: input ### Outputs - **Y** (heterogeneous) - **tensor(int64)**: output ### Type Constraints * **T** in ( `tensor(bool)`, `tensor(complex128)`, `tensor(complex64)`, `tensor(double)`, `tensor(float)`, `tensor(float16)`, `tensor(int16)`, `tensor(int32)`, `tensor(int64)`, `tensor(int8)`, `tensor(string)`, `tensor(uint16)`, `tensor(uint32)`, `tensor(uint64)`, `tensor(uint8)` ): Constrain to all tensor types.