np。where函数使用
时间: 2024-08-14 19:03:43 浏览: 26
`np.where` 函数是NumPy库中的一个功能,它允许你在数组中根据特定的条件选择返回相应的元素。这个函数接受三个参数:
1. **condition**: 一个布尔数组,表示在哪些位置应用条件。
2. **x**: 如果condition为True,则返回的元素来自这里。
3. **y**: 如果condition为False,则返回的元素来自这里。
例如,假设我们有两个数组 `x` 和 `y`,我们可以这样使用 `np.where` 来找到满足某个条件时应该取自哪个数组的值:
```python
import numpy as np
# 假设我们要找出所有大于5的数在x中的对应值,否则取y中的无穷大值
x = np.arange(12.).reshape(4, 3)
y = np.inf
result = np.where(x > 5, x, y)
print(result) # output: [[inf inf inf] [inf inf inf] [ 6. 7. 8.] [ 9. 10. 11.]]
# 这里还展示了更简单的情况
a = np.arange(27) # 创建一个从0到26的一维数组
t1, t2 = np.where(a > 5) # 获取所有大于5的索引位置
print(t1) # 输出:array([ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
# 24, 25])
print(t2) # 输出:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20])
print(type(t1)) # 输出:<class 'numpy.ndarray'>
print(type(t2)) # 输出:<class 'numpy.ndarray'>
```
`np.where` 返回的是两个数组(t1和t2),第一个数组包含满足条件的元素的位置,第二个数组则对应这些位置上的原始数值。如果只需要位置,可以只取其中一个结果。