统计学L8 Python概率练习(一)

掷硬币的概率问题

一、课堂内容

1.randint的用法

randint(low, high=None, size=None, dtype='l')

  • low,high表示随机结果的取值范围;所有结果出现的概率想等。
  • size表示结果的矩阵表达形式,size(a,b)其中a表示行数,b表示列数;其中a,b是int形式,或者tuple,不能是float。

例子1:randint(2, size = 10000)
返回:[0, 1, 0 ……, 1,1]
说明:取值结果为2以内的int,0或者1;一共显示10000个结果。

例子2:randint(2, size = (int(1e6), 2))
返回:
[0, 1]
[1, 0]
[1, 1]
……
[1, 0]
说明:取值结果为2以内的int,0或者1;一共显示1e6行X2列的矩阵结果。

2.choice的用法

choice(a, size=None, replace=True, p=None)

  • 与randint的区别在于,可以设置每个结果出现的概率

二、练习内容

在学习完(一)的内容之后,Udacity提供的计算概率练习内容如下:

1.两次均衡掷硬币得到两次正面
2.三次均衡掷硬币得到一次正面
3.P(H) = 0.6 时三次非均衡掷硬币得到一次正面
4.一次掷骰子得到偶数
5.两次掷骰子得到相同值

1.两次均衡掷硬币得到两次正面

思考路径如下:
(1)如何生成两次均衡掷硬币的结果?

numpy.random.randint函数;

(2)如何将两次掷硬币的结果组合在一起?
可以想象成每组掷两次硬币,一共掷1000000组
or:
每组掷硬币的结果看成一列数据,两组的结果就是两列数据。形成一个N*2的矩阵

test_1 = numpy.random.randint(2, size = (int(1e6), 2))

(3)如何表达两次都是正面?
每次正面的结果是0,两次都是正面之和将仍然是0。所以可以考虑先求和。求和时每行的两个值相加,用axis=1来表达沿行计算。

test_sum = test_1.sum(axis = 1)

(4)两次都是正面的概率如何表达呢?
先挑出所有符合test_sum=0的值,每个符合的值表达为ture,然后将所有ture的值求个平均数即代表概率。

(test_sum == 0).mean()

2.三次均衡掷硬币得到一次正面

这个问题的思考路径和1.相同,只要将列数改为3;一次正面即数值之和为2。

test_2 = numpy.random.randint(2, size = (int(1e6), 3))
test_sum = test_2.sum(axis = 1)
(test_sum == 2).mean()

3.P(H) = 0.6 时三次非均衡掷硬币得到一次正面

同上两个问题,只需将randint改成choice,同时加上概率即可。

test_3 = numpy.random.choice([0, 1], p = [0.6, 0.4], size = (int(1e6), 3))
test_sum = test_3.sum(axis = 1)
(test_sum == 2).mean()

4.一次掷骰子得到偶数

该问题的思考路径:
(1)如何表达骰子6个结果的数列?
以前用的是2,现在改成1~7。

test_4 = numpy.random.randint(1, 7, size = 100000)

(2)如何表达偶数的意思?
%2 == 0

(test_4 % 2 == 0).mean()

5.两次掷骰子得到相同值

该问题的思考路径:
(1)如何表达掷骰子的结果?

tests_1 = numpy.random.randint(1, 7, size = 100000)

(2)如何表达两次掷骰子结果相同?
可以考虑为每次结果单独设为一列,然后让两列结果相等。

tests_2 = numpy.random.randint(1, 7, size = 100000)
(tests_1 == tests_2).mean()

三、总结

作为初学者,我最开始看第一道题目时整个人是蒙圈的,感觉在视频里学过的两个函数完全无法解决当前的问题。思考无解后不得不去看答案,然后开始琢磨:为什么这么表达?这么表达的思考路径是什么呢?答案里的表达能不能换一种方式呢?
在长时间的琢磨后,我想也许还有其他的初学者可能遇到和我一样的困惑,于是在简书上写了这样一篇学习笔记,兴许能为其他的初学者提供一些帮助。
这是Udacity数据分析(入门)课程的统计学lesson8的学习笔记一
转载请注明出处

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。