用 numpy 方法产生标准正态分布的随机数 100 个,并将其转换成 10 行 10 列的数据矩阵,绘制出 bins=10 的直方图,多次运行程序观察图形的效果; 然后利用种子方法产生同样的随机数,再观察数据以及直方图的效果。 同样地,用 scipy.stats 方法产生以上的随机数,并绘制出对应的直方图, 在 stats 方法中用参数 random_state 观察效果,并将正态分布的累计分布函数曲线绘制出来。
时间: 2024-03-10 22:50:56 浏览: 211
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
5星 · 资源好评率100%
好的,以下是代码实现:
使用 numpy 产生标准正态分布的随机数 100 个,并将其转换成 10 行 10 列的数据矩阵,绘制出 bins=10 的直方图,多次运行程序观察图形的效果:
```python
import numpy as np
import matplotlib.pyplot as plt
# 产生标准正态分布的随机数 100 个
data = np.random.randn(100)
# 将其转换成 10 行 10 列的数据矩阵
data_matrix = data.reshape(10, 10)
# 绘制出 bins=10 的直方图
plt.hist(data, bins=10)
plt.show()
```
使用种子方法产生同样的随机数,再观察数据以及直方图的效果:
```python
import numpy as np
import matplotlib.pyplot as plt
# 使用种子方法产生同样的随机数
np.random.seed(0)
data = np.random.randn(100)
# 将其转换成 10 行 10 列的数据矩阵
data_matrix = data.reshape(10, 10)
# 绘制出 bins=10 的直方图
plt.hist(data, bins=10)
plt.show()
```
使用 scipy.stats 方法产生以上的随机数,并绘制出对应的直方图, 在 stats 方法中用参数 random_state 观察效果,并将正态分布的累计分布函数曲线绘制出来:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# 产生标准正态分布的随机数 100 个
data = norm.rvs(size=100, random_state=0)
# 绘制出 bins=10 的直方图
plt.hist(data, bins=10)
plt.show()
# 绘制正态分布的累计分布函数曲线
x = np.linspace(-3, 3, 100)
plt.plot(x, norm.cdf(x))
plt.show()
```
以上就是实现代码,希望对你有帮助。
阅读全文