np.where的用法
时间: 2023-12-09 21:36:18 浏览: 68
`np.where()`是一个NumPy库中的函数,它返回一个数组中满足条件的元素的索引或值。它的语法如下:
```python
numpy.where(condition[, x, y])
```
其中,`condition`是一个条件,可以是一个布尔数组或一个条件表达式。如果只提供了`condition`参数,则返回满足条件的元素的索引。如果同时提供了`x`和`y`参数,则返回满足条件的元素的值,否则返回满足条件的元素的索引。
以下是`np.where()`的两个用法示例:
1. 多条件用法
```python
import numpy as np
data = np.array([[0, 2, 0], [3, 1, 2], [0, 4, 0]])
new_data = np.where((data>=0) & (data<=2), np.ones_like(data), np.zeros_like(data))
print(new_data)
```
输出:
```
[[1 1 1]
[0 1 1]
[1 0 1]]
```
在这个例子中,`np.where()`函数根据条件`(data>=0) & (data<=2)`返回一个新的数组`new_data`,其中满足条件的元素被替换为`1`,不满足条件的元素被替换为`0`。
2. 单条件用法
```python
import numpy as np
a = np.array([2, 4, 6, 8, 10])
indices = np.where(a > 5)
print(indices)
```
输出:
```
(array([2, 3, 4], dtype=int64),)
```
在这个例子中,`np.where()`函数根据条件`a > 5`返回一个元组`indices`,其中包含满足条件的元素的索引。
阅读全文