np.where(condition[, x, y]),基于条件 condition,返回值来自 x 或者 y
时间: 2024-01-31 16:03:57 浏览: 53
np.where详解.ipynb
是的,`np.where()` 函数可以基于条件 `condition` 返回值来自 `x` 或者 `y`,具体语法如下:
```python
np.where(condition[, x, y])
```
其中,`condition` 是一个布尔数组,`x` 和 `y` 是两个相同形状的数组或者标量。当 `condition` 中的元素为 `True` 时,返回值为 `x` 中对应位置的元素;当 `condition` 中的元素为 `False` 时,返回值为 `y` 中对应位置的元素。如果省略参数 `x` 和 `y`,则返回一个包含 `condition` 中所有非零元素索引的元组。
下面是一个例子:
```python
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
# 将 a 中小于等于 2 的元素替换为 0,其它元素替换为 1
c = np.where(a <= 2, 0, 1)
print(c) # 输出 [[0 0] [1 1]]
# 将 a 中小于等于 2 的元素替换为 b 中对应位置的元素,其它元素不变
d = np.where(a <= 2, b, a)
print(d) # 输出 [[5 6] [3 4]]
```
在第一个例子中,将 `a` 中小于等于 2 的元素替换为 0,其它元素替换为 1,得到的结果为 `[[0, 0], [1, 1]]`。在第二个例子中,将 `a` 中小于等于 2 的元素替换为 `b` 中对应位置的元素,其它元素不变,得到的结果为 `[[5, 6], [3, 4]]`。
阅读全文