用 numpy 方法产生分布于[2, 5)之间的随机数 50 个,并将其转换成 10 行 5 列的数据矩阵,绘制出 bins=10 的直方图,用 scipy.stats 方法产生以上的随机数,并绘制出对应的直方图
时间: 2024-02-25 14:57:07 浏览: 70
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
5星 · 资源好评率100%
好的,以下是代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
# 产生随机数
x = np.random.uniform(low=2, high=5, size=50)
# 转换成10行5列的矩阵
x_matrix = x.reshape((10, 5))
# 绘制直方图
plt.hist(x, bins=10)
plt.title("Histogram of Random Numbers")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
# 使用 scipy.stats 产生随机数
x_scipy = uniform.rvs(loc=2, scale=3, size=50)
# 绘制直方图
plt.hist(x_scipy, bins=10)
plt.title("Histogram of Random Numbers (Scipy)")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
```
其中,`np.random.uniform(low=2, high=5, size=50)` 用于产生分布于[2, 5)之间的随机数,`x.reshape((10, 5))` 用于将一维数组转换成10行5列的矩阵。`plt.hist` 用于绘制直方图,`uniform.rvs(loc=2, scale=3, size=50)` 用于使用 scipy.stats 产生随机数。
阅读全文