Announcement: All noncommercial projects registered to use Earth Engine before April 15, 2025 must verify noncommercial eligibility to maintain Earth Engine access.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-10-06 UTC."],[[["\u003cp\u003e\u003ccode\u003eArray.firstNonZero()\u003c/code\u003e selects the first array's element if it's non-zero; otherwise, it selects the corresponding element from the second array.\u003c/p\u003e\n"],["\u003cp\u003eThis function operates element-wise on two input arrays (\u003ccode\u003eleft\u003c/code\u003e and \u003ccode\u003eright\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eIf the \u003ccode\u003eleft\u003c/code\u003e array element is 0, the corresponding element from the \u003ccode\u003eright\u003c/code\u003e array is chosen.\u003c/p\u003e\n"],["\u003cp\u003eThe function returns a new array containing the selected elements.\u003c/p\u003e\n"],["\u003cp\u003eIt's useful for scenarios like conditional data selection based on zero/non-zero values.\u003c/p\u003e\n"]]],["The `firstNonZero` method compares two arrays (`left` and `right`) element-wise. If an element in the `left` array is non-zero, that value is selected. Otherwise, the corresponding element from the `right` array is chosen. The method returns a new array where each element is the result of this comparison. Both JavaScript and Python examples show how to implement and the result. The return value is an array.\n"],null,["# ee.Array.firstNonZero\n\nOn an element-wise basis, selects the first value if it is non-zero, and the second value otherwise.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|-----------------------------|---------|\n| Array.firstNonZero`(right)` | Array |\n\n| Argument | Type | Details |\n|--------------|-------|-----------------------|\n| this: `left` | Array | The left-hand value. |\n| `right` | Array | The right-hand value. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\nvar empty = ee.Array([], ee.PixelType.int8());\nprint(empty.firstNonZero(empty)); // []\n\nprint(ee.Array([0]).firstNonZero(0)); // [0]\nprint(ee.Array([0]).firstNonZero([0])); // [0]\nprint(ee.Array([0]).firstNonZero([1])); // [1]\nprint(ee.Array([2]).firstNonZero([3])); // [2]\nprint(ee.Array([1]).firstNonZero([0])); // [1]\n\nprint(ee.Array([-1, 0, 1]).firstNonZero([2, -1, 2])); // [-1,-1,1]\n\n// [[1,2],[3,4]]\nprint(ee.Array([[1, 2], [0, 0]]).firstNonZero([[0, 0], [3, 4]]));\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\nempty = ee.Array([], ee.PixelType.int8())\ndisplay(empty.firstNonZero(empty)) # []\n\ndisplay(ee.Array([0]).firstNonZero(0)) # [0]\ndisplay(ee.Array([0]).firstNonZero([0])) # [0]\ndisplay(ee.Array([0]).firstNonZero([1])) # [1]\ndisplay(ee.Array([2]).firstNonZero([3])) # [2]\ndisplay(ee.Array([1]).firstNonZero([0])) # [1]\n\ndisplay(ee.Array([-1, 0, 1]).firstNonZero([2, -1, 2])) # [-1, -1, 1]\n\n# [[1, 2], [3, 4]]\ndisplay(ee.Array([[1, 2], [0, 0]]).firstNonZero([[0, 0], [3, 4]]))\n```"]]