python自定义函数生成频数表
时间: 2023-10-14 08:25:43 浏览: 141
假设你有一个列表`data`,里面包含了一些元素。你可以这样定义一个函数来生成频数表:
```python
def frequency_table(data):
freq_dict = {}
for item in data:
if item in freq_dict:
freq_dict[item] += 1
else:
freq_dict[item] = 1
return freq_dict
```
这个函数会遍历列表中的每个元素,将它们作为键来构建一个字典,字典的值则是该元素在列表中出现的次数。最后,函数会返回这个字典,它就是你所需要的频数表。
使用这个函数也很简单,只需要把你的列表作为参数传递进去即可:
```python
data = [1, 2, 3, 2, 1, 4, 5, 2, 3, 3]
freq_table = frequency_table(data)
print(freq_table)
```
运行结果:
```
{1: 2, 2: 3, 3: 3, 4: 1, 5: 1}
```
这个结果告诉你,列表中有两个1,三个2,三个3,一个4,一个5。
相关问题
在jupyter notebook中请自定义生成频数表和频数图的函数,数据为:否,否,否,是,是,否,否,是,否,是,否,否,是,是,否,是,否,否,是,是
好的,我能理解你的问题。你可以使用Python中的collections库来生成频数表和频数图。
首先,你需要导入collections和matplotlib库。然后,你可以定义一个名为freq_table的函数,它可以接收数据列表作为输入,并返回一个字典,其中键是列表中的唯一值,值是该唯一值在列表中出现的次数。
下面是freq_table函数的代码:
```
import collections
import matplotlib.pyplot as plt
def freq_table(data):
counter = collections.Counter(data)
freq_dict = dict(counter)
return freq_dict
```
接下来,你可以定义一个名为plot_freq的函数,它可以接收freq_table函数返回的字典作为输入,并生成一个频数图。
下面是plot_freq函数的代码:
```
def plot_freq(data):
freq_dict = freq_table(data)
x = list(freq_dict.keys())
y = list(freq_dict.values())
plt.bar(x, y)
plt.show()
```
现在,你可以在jupyter notebook中使用这两个函数来生成频数表和频数图了。例如,如果你想生成上面提到的数据的频数表和频数图,你可以使用以下代码:
```
data = ['否', '否', '否', '是', '是', '否', '否', '是', '否', '是', '否', '否', '是', '是', '否', '是', '否', '否', '是', '是']
freq_dict = freq_table(data)
print(freq_dict)
plot_freq(data)
```
输出:
```
{'否': 11, '是': 9}
```
频数图如下所示:
![image.png](attachment:image.png)
jupyter notebook中自定义生成频数表,数据为:否,否,否,是,是,否,否,是,否,是,否,否,是,是,否,是,否,否,是,是。
可以使用Python中的collections库中的Counter函数自定义生成频数表,示例代码如下:
```python
from collections import Counter
data = ['否', '否', '否', '是', '是', '否', '否', '是', '否', '是', '否', '否', '是', '是', '否', '是', '否', '否', '是', '是']
freq_table = Counter(data)
print(freq_table)
```
输出结果如下:
```
Counter({'否': 11, '是': 9})
```
其中,Counter函数用于统计列表中每个元素出现的次数,返回一个字典,键为元素,值为元素出现的次数。
阅读全文