下面是一组学生的数学成绩,arr = np.random.randint(0, 100, 1000),如何使用python筛选得分大于 60 的人数
时间: 2023-04-10 07:01:25 浏览: 165
您好,这个问题可以使用以下代码来筛选得分大于60的人数:
```python
import numpy as np
arr = np.random.randint(0, 100, 1000)
num_above_60 = len(arr[arr > 60])
print("得分大于60的人数为:", num_above_60)
```
这段代码会生成一个包含1000个随机数的数组,然后使用布尔索引来筛选得分大于60的数,并计算它们的数量。最后输出得分大于60的人数。
相关问题
import numpy as np arr=np.random.randint(1,[12,(3,4)]) print(arr)
这段代码有语法错误,应该是:
```python
import numpy as np
arr = np.random.randint(1, 12, size=(3, 4))
print(arr)
```
这段代码的作用是生成一个 $3\times 4$ 的随机整数矩阵,矩阵中元素的取值范围为 $[1, 12)$。其中 `np.random.randint()` 函数的第一个参数是下限,第二个参数是上限(不包括),`size` 参数表示矩阵的形状。`print()` 函数用于打印矩阵。
以下代码有什么问题np.random.seed(100) arr = np.random.randint(-1,2,20) lst_str=arr.copy() lst_str[lst_str==-1]='bad' lst_str[lst_str==0]='neutral' lst_str[lst_str==1]='good'
上述代码的问题在于,在使用 `copy()` 方法将 `arr` 复制到 `lst_str` 后,将 `lst_str` 中的元素替换为字符串类型时,数组的数据类型会发生改变,因此无法保证替换后的元素类型与原始数组一致。这可能会导致后续使用数组时出现问题。
为了避免这种情况,我们可以在创建 `lst_str` 数组时,指定数据类型为字符串类型。修改后的代码如下:
```python
import numpy as np
np.random.seed(100)
arr = np.random.randint(-1, 2, 20)
lst_str = np.empty_like(arr, dtype=str)
lst_str[arr == -1] = 'bad'
lst_str[arr == 0] = 'neutral'
lst_str[arr == 1] = 'good'
print(lst_str)
```
在上述代码中,我们使用 `empty_like()` 方法创建一个与 `arr` 大小相同、类型为字符串类型的数组 `lst_str`,然后使用逻辑索引将 `lst_str` 中的元素替换为字符串类型。最后,输出替换后的数组 `lst_str`。
阅读全文