Python从一维数组中筛选出大于0.5的数
时间: 2023-06-14 14:05:25 浏览: 139
可以使用numpy的数组过滤功能来实现:
```python
import numpy as np
arr = np.array([0.2, 0.6, 0.8, 0.3, 0.9, 0.1])
filtered_arr = arr[arr > 0.5]
print(filtered_arr)
```
输出:
```
[0.6 0.8 0.9]
```
在上面的代码中,首先定义了一个一维数组`arr`,然后使用`arr > 0.5`来获取一个布尔数组,其中大于0.5的元素为`True`,小于等于0.5的元素为`False`。接着将这个布尔数组作为索引,用`arr[arr > 0.5]`来获取大于0.5的元素,最后将结果打印出来。
相关问题
创建一个5✖️5的二维数组,元素为(0,1)的浮点数。使用布尔索引选择数组中即大于0.5又小于0.9的元素
创建一个5×5的二维数组,其中所有元素都是0.5和1之间的浮点数,你可以这样做:
```python
import numpy as np
# 创建一个5x5的二维数组,元素范围在0.5到0.9之间(包括两端)
arr = np.array([[np.random.uniform(0.5, 0.9) for _ in range(5)] for _ in range(5)])
# 使用布尔索引来选择满足条件的元素
mask = (arr > 0.5) & (arr < 0.9)
selected_elements = arr[mask]
print("原始数组:\n", arr)
print("筛选后的元素:\n", selected_elements)
```
在这个例子中,我们首先导入了NumPy库,然后生成了一个5行5列的二维数组,每个元素的值通过`np.random.uniform()`随机生成在0.5和0.9之间。接下来,我们创建了一个布尔数组`mask`,它的每个元素对应原数组的一个元素,如果该元素大于0.5且小于0.9,对应的`mask`就是True。最后,我们使用布尔索引`mask`来选取满足条件的元素。
对已定义的数组arr进行筛选,arr的形式如下: [[ 0.5 -0.8] [ 0.9 -0.3]] 将所有大于0的数据提取并赋值给arr_extra(一维数组),补充代码实现该功能。
```python
arr_extra = arr[arr > 0]
```
解释:
- `arr > 0` 返回一个布尔型数组,表示arr中哪些元素大于0。
- `arr[arr > 0]` 用布尔型数组索引arr,提取所有大于0的元素,返回一个一维数组。
- 这个一维数组就是我们要的结果,赋值给`arr_extra`即可。
阅读全文