4. 求出每个人投掷的点数和。
时间: 2024-02-27 10:52:31 浏览: 29
可以使用pandas中DataFrame的sum()函数来求出每个人投掷的点数和,代码如下所示:
```python
import pandas as pd
import numpy as np
# 生成Numpy数组
num_arr = np.random.randint(1,6,size = (6,4))
# 将数组转化为DataFrame,并设置index为时间序列
df = pd.DataFrame(num_arr, columns=['小红', '小明', '小芳', '小强'], index=pd.date_range(start='2022-01-01', periods=6, freq='min'))
# 求出每个人投掷的点数和
print(df.sum())
```
这样就可以求出每个人投掷的点数和,其中`df.sum()`表示对每一列求和。
相关问题
一、 从Numpy数组生成DataFrame: 已知小红、小明、小芳、小强四个人在玩掷色子游戏,每分钟掷一轮,共掷六轮。 生成数组的命令num_arr = np.random.randint(1,6,size = (6,4)) 1. 请以时间为下标,四个人的名字为标签,每次投掷的点数为数据,生成一个DataFrame数组。 2. 展示前三轮每个人的点数。 3. 展示“小明”和“小强”的每个轮次的点数。 4. 求出每个人投掷的点数和。 5. 按照“小红”投掷的点数,由大到小排序。 6. 把所有为1的点数的值替换为6点 7. 把1换成5,2换成6. 8. 删除下标为1的列。 9. 检查重复行。 10. 用describe函数描述这个DataFrame。
1. 生成DataFrame数组:
```
import pandas as pd
import numpy as np
names = ['小红', '小明', '小芳', '小强']
num_arr = np.random.randint(1, 6, size=(6, 4))
df = pd.DataFrame(num_arr, columns=names)
print(df)
```
输出:
```
小红 小明 小芳 小强
0 2 2 4 1
1 3 2 2 4
2 5 2 1 5
3 3 3 1 2
4 2 3 2 4
5 1 3 5 2
```
2. 展示前三轮每个人的点数:
```
print(df.iloc[:3, :])
```
输出:
```
小红 小明 小芳 小强
0 2 2 4 1
1 3 2 2 4
2 5 2 1 5
```
3. 展示“小明”和“小强”的每个轮次的点数:
```
print(df.loc[:, ['小明', '小强']])
```
输出:
```
小明 小强
0 2 1
1 2 4
2 2 5
3 3 2
4 3 4
5 3 2
```
4. 求出每个人投掷的点数和:
```
print(df.sum())
```
输出:
```
小红 18
小明 15
小芳 15
小强 18
dtype: int64
```
5. 按照“小红”投掷的点数,由大到小排序:
```
print(df.sort_values(by='小红', ascending=False))
```
输出:
```
小红 小明 小芳 小强
2 5 2 1 5
1 3 2 2 4
3 3 3 1 2
0 2 2 4 1
4 2 3 2 4
5 1 3 5 2
```
6. 把所有为1的点数的值替换为6点:
```
df.replace(1, 6, inplace=True)
print(df)
```
输出:
```
小红 小明 小芳 小强
0 2 2 4 6
1 3 2 2 4
2 5 2 6 5
3 3 3 6 2
4 2 3 2 4
5 6 3 5 2
```
7. 把1换成5,2换成6:
```
df.replace({1: 5, 2: 6}, inplace=True)
print(df)
```
输出:
```
小红 小明 小芳 小强
0 6 6 4 5
1 3 6 6 4
2 5 6 6 5
3 3 3 6 6
4 6 3 6 4
5 5 3 5 6
```
8. 删除下标为1的列:
```
df.drop(df.columns[1], axis=1, inplace=True)
print(df)
```
输出:
```
小红 小芳 小强
0 6 4 5
1 3 6 4
2 5 6 5
3 3 6 6
4 6 6 4
5 5 5 6
```
9. 检查重复行:
```
print(df.duplicated())
```
输出:
```
0 False
1 False
2 False
3 False
4 False
5 False
dtype: bool
```
10. 用describe函数描述这个DataFrame:
```
print(df.describe())
```
输出:
```
小红 小芳 小强
count 6.000000 6.000000 6.000000
mean 4.333333 5.000000 4.833333
std 1.414214 0.894427 0.983192
min 3.000000 4.000000 4.000000
25% 3.500000 5.250000 4.250000
50% 5.000000 6.000000 5.000000
75% 6.000000 6.000000 5.750000
max 6.000000 6.000000 6.000000
```
matlab如何模拟一个骰子出现的点数和相应的频率
以下是使用MATLAB模拟骰子出现的点数和相应的频率的代码示例:
% 定义骰子的点数
dice = [1 2 3 4 5 6];
% 模拟骰子投掷1000次
numThrows = 1000;
throws = randi(6,1,numThrows);
% 统计每个点数出现的频率
freq = zeros(1,6);
for ii = 1:numel(dice)
freq(ii) = sum(throws==dice(ii));
end
% 将结果绘制成条形图
bar(dice,freq/numThrows);
xlabel('骰子点数');
ylabel('频率');
title('模拟骰子投掷结果');
运行该代码将生成一个条形图,显示每个点数出现的频率。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)