数组numpy的条件筛选
时间: 2023-04-03 09:04:20 浏览: 79
可以使用numpy的布尔索引来进行条件筛选,例如:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
condition = arr > 3
result = arr[condition]
print(result)
输出结果为:[4 5]
相关问题
numpy条件筛选 案例
假设有一个二维数组arr,我们想要筛选出其中所有小于5的元素。
```python
import numpy as np
arr = np.array([[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
# 使用条件筛选
result = arr[arr < 5]
print(result)
```
输出结果为:
```
[1 2 3 4]
```
解释:使用arr < 5可以得到一个布尔类型的数组,然后将这个数组作为索引传入原数组arr中,这样就可以得到所有小于5的元素了。
numpy 筛选指定行
可以使用 numpy 的布尔索引来筛选指定行。假设有一个二维数组 `arr`,我们想要筛选出满足某个条件的行,可以按照以下步骤进行操作:
1. 定义一个布尔数组 `mask`,用来表示满足条件的行。
2. 使用布尔索引筛选出满足条件的行,即 `arr[mask]`。
以下是一个示例代码,假设我们想要筛选出第一列大于 5 的行:
```python
import numpy as np
# 创建一个随机的二维数组
arr = np.random.randint(0, 10, size=(5, 3))
print(arr)
# 定义一个布尔数组,表示第一列大于 5 的行
mask = arr[:, 0] > 5
# 使用布尔索引筛选出满足条件的行
result = arr[mask]
print(result)
```
输出结果如下:
```
[[8 4 1]
[1 8 0]
[1 6 5]
[1 2 1]
[6 3 6]]
[[8 4 1]
[6 3 6]]
```
可以看到,最终输出结果只包含第一列大于 5 的行。