##### `np.where(condition, x, y)`
**功能简介:**
- 根据给定的条件从两个输入数组 `x` 和 `y` 中选择元素,并返回一个新数组,其中元素来自于 `x` 或 `y`,取决于条件。
**参数说明:**
- `condition`:一个布尔数组或布尔表达式,用于指定选择元素的条件。
- `x`:可选参数,输入数组 `x`。
- `y`:可选参数,输入数组 `y`。
- 如果仅提供 `condition` 参数,则返回满足条件的元素的索引。
- 如果同时提供 `x` 和 `y` 参数,则返回一个新数组,其中满足条件的元素来自 `x`,不满足条件的元素来自 `y`。
**返回值:**
- 如果仅提供 `condition` 参数,则返回满足条件的元素的索引组成的元组,每个元素是一个数组,包含相应维度的索引。
- 如果同时提供 `x` 和 `y` 参数,则返回一个新数组,其中满足条件的元素来自 `x`,不满足条件的元素来自 `y`。
**用法示例:**
1. **返回满足条件的元素的索引**
```python
import numpy as np
arr = np.array([3, 1, 4, 1, 5, 9, 2, 6])
condition = arr > 3
indices = np.where(condition)
print(indices) # Output: (array([2, 4, 5, 7]),)
```
2. **根据条件选择元素**
```python
import numpy as np
arr = np.array([3, 1, 4, 1, 5, 9, 2, 6])
condition = arr > 3
result = np.where(condition, arr, -1)
print(result) # Output: [-1 -1 4 -1 5 9 -1 6]
```