np.where 用法
时间: 2023-07-11 11:54:36 浏览: 81
`np.where` 是 NumPy 库中的一个函数,主要用于根据条件从数组中选择元素。
`np.where` 的基本用法是:
```
np.where(condition, x, y)
```
其中,`condition` 是一个数组或条件,`x` 和 `y` 是两个数组,当 `condition` 中的元素满足条件时,`np.where` 会从 `x` 中选择相应的元素,否则从 `y` 中选择相应的元素,返回一个新的数组。
例如:
```python
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([10, 20, 30, 40, 50])
c = np.where(a > 3, b, a)
print(c)
```
输出:
```
[ 1 2 3 40 50]
```
这里,`condition` 是 `a > 3`,即当 `a` 中的元素大于 3 时,选择 `b` 中的相应元素,否则选择 `a` 中的相应元素,最终得到的数组为 `[1 2 3 40 50]`。
`np.where` 还可以使用一种简化的写法:
```python
c = np.where(a > 3, b, a)
```
这个写法中,`x` 和 `y` 被省略了,相当于 `x` 是满足条件的元素,`y` 是不满足条件的元素,上面的例子中,`x` 是 `b`,`y` 是 `a`。
相关问题
np.where用法举例
np.where是NumPy库中的一个函数,用于根据给定的条件返回符合条件的元素的索引或值。它的用法如下:
1. 返回符合条件的元素的索引:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
indices = np.where(arr > 3)
print(indices)
```
输出:
```
(array([3, 4]),)
```
这的条件是arr 3,np.where返回了满足条件的元素的索,即3和4。
2. 返回符合条件的元素值:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
values = np.where(arr > 3, arr, 0)
print(values)
```
输出:
```
[0 0 0 4 5]
```
这里的条件是arr > 3,np.where返回了满足条件的元素的值,不满足条件的元素用0代替。
3. 多个条件的使用:
```python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
values = np.where((arr > 2) & (arr < 5), arr, -1)
print(values)
```
输出:
```
[-1 -1 3 4 -1]
```
这里的条件是arr > 2和arr < 5,np.where返回了同时满足两个条件的元素的值,不满足条件的元素用-1代替。
np.argwhere与np.where区别
np.argwhere和np.where都是NumPy中用于查找数组中满足某个条件的元素索引的函数。它们的主要区别在于返回结果的形式和用法上。
np.where(condition)函数返回满足条件的元素的索引,以元组的形式表示。每个元组表示一个满足条件的元素的索引。如果数组是一维的,那么返回的结果是一个一维数组;如果数组是多维的,那么返回的结果是一个元组,其中每个元素是一个一维数组。
np.argwhere(condition)函数返回满足条件的元素的索引,以二维数组的形式表示。每一行表示一个满足条件的元素的索引。其中,每一行的第一个元素表示该元素在第0维的索引,第二个元素表示该元素在第1维的索引,以此类推。返回的结果是一个二维数组。
简而言之,np.where返回满足条件的元素索引的元组或数组,而np.argwhere返回满足条件的元素索引的二维数组。
阅读全文