numpy.where()
时间: 2023-05-13 12:06:06 浏览: 47
numpy.where() 是一个用于根据给定条件返回数组中元素的索引的函数。它可以接受一个或多个条件,并返回一个元组,其中包含满足条件的元素的索引。例如,可以使用 numpy.where() 来查找数组中所有大于 5 的元素的索引。
相关问题
numpy.where
`numpy.where` 是一个用于在数组中根据给定条件返回元素的索引的函数。
函数语法如下:
```python
numpy.where(condition[, x, y])
```
参数说明:
- `condition`:一个布尔型或非零的数组,用于指定筛选条件。
- `x`:可选参数,当 `condition` 中的元素为 `True` 时,返回的数组中对应位置的元素值,缺省值为 `None`。
- `y`:可选参数,当 `condition` 中的元素为 `False` 时,返回的数组中对应位置的元素值,缺省值为 `None`。
函数返回值:
`numpy.where` 函数返回一个元组,其中包含满足条件的元素的索引。如果 `x` 和 `y` 都没有给定,则返回一个包含索引的元组;如果 `x` 和 `y` 都给定,则返回一个根据 `condition` 条件计算的新数组。
以下是一个示例代码:
```python
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([10, 20, 30, 40, 50])
condition = np.array([True, False, True, False, True])
c = np.where(condition, a, b)
print(c)
```
输出结果为:
```
[ 1 20 3 40 5]
```
在上面的例子中,我们创建了两个数组 `a` 和 `b`,以及一个布尔型数组 `condition`。然后使用 `numpy.where` 函数根据 `condition` 数组中的值选择 `a` 或 `b` 中的对应值,最终生成一个新的数组 `c`。
numpy.where的使用
`numpy.where()`函数是一个非常有用的函数,它用于根据条件返回数组中的元素。它的使用方法如下:
```python
numpy.where(condition[, x, y])
```
其中`condition`是一个布尔数组或一个条件表达式,`x`和`y`是可选的数组或标量。如果只有一个参数,`numpy.where()`函数返回一个元组,其中包含满足条件的元素的下标。如果有两个参数,它会返回一个数组,其中满足条件的元素被替换为`x`中的元素,不满足条件的元素被替换为`y`中的元素。
以下是一个简单的例子,展示了如何使用`numpy.where()`函数:
```python
import numpy as np
# 生成一个随机数组
arr = np.random.randn(3, 3)
print(arr)
# 使用 where 函数将所有小于 0 的元素替换为 0
arr = np.where(arr < 0, 0, arr)
print(arr)
```
输出结果为:
```
[[ 1.17495746 -0.1660839 0.09179339]
[ 0.18398535 -0.58779787 -0.30320773]
[ 0.10788839 0.54298662 0.14932153]]
[[1.17495746 0. 0.09179339]
[0.18398535 0. 0. ]
[0.10788839 0.54298662 0.14932153]]
```
在上面的例子中,我们使用`numpy.random.randn()`函数生成了一个大小为`(3, 3)`的随机数组。然后,我们使用`numpy.where()`函数将所有小于0的元素替换为0,得到了一个新的数组。