np.where with 2D arrays returning unexpected results when used with boolean conditions in NumPy 1.24.0
Hey everyone, I'm running into an issue that's driving me crazy. I'm relatively new to this, so bear with me. I'm working with a 2D NumPy array and trying to use `np.where()` to find indices based on a boolean condition. However, the results I'm getting seem inconsistent with what I expect. Here's a snippet of the code I wrote: ```python import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) condition = array_2d > 5 result = np.where(condition) print(result) ``` When I run this code, I expected to receive the indices of the elements greater than 5, but instead, I got a tuple of arrays: ``` (array([1, 2, 2]), array([2, 0, 1])) ``` This output indicates the indices of the true values, but itβs not clear how to interpret them in the context of the original 2D array. Additionally, I tried to visualize the result by reconstructing the indices: ```python for row, col in zip(*result): print(f'Value {array_2d[row, col]} at index ({row}, {col})') ``` This outputs: ``` Value 6 at index (1, 2) Value 7 at index (2, 0) Value 8 at index (2, 1) ``` While this works, I'm looking for a more straightforward way to directly extract the values that meet the condition rather than reconstructing the indices. Is there a more efficient method to achieve this, or am I missing something crucial about how `np.where()` handles 2D arrays? Thanks! For context: I'm using Python on Windows. Am I missing something obvious?