初识numpy与matplotlib
1. numpy与matplotlib的安装
pip install numpy
pip install matplotlib
2. 使用numpy创建随机数
import numpy as np
x = np.random.rand()
print('x=', x) # 输出一个0~1的随机小数
y = np.random.rand(10, 2) # 创建一个10行2列的二维数组
print('y: ', y) # 输出一个0~1的随机小数的二维数组
print('y[1]: ', y[1]) # 输出第二行的数据
# 若要输出多行数据
print('第一/三/五行的数据为: ', y[[0, 2, 4]]) # 注意用法
# 若要输出某列的全部数字
print('第二列的全部数字: ', y[:, 1]) # 使用切片,输出第一列的全部数字
其输出结果为:
x= 0.25638836693071065
y: [[0.5788188 0.89503475]
[0.98298585 0.69295086]
[0.00934004 0.97304482]
[0.34094026 0.24824508]
[0.79254743 0.90471139]
[0.98348233 0.61303427]
[0.25389316 0.48046491]
[0.41290968 0.58207312]
[0.48456803 0.45319231]
[0.42532825 0.67650157]]
y[1]: [0.98298585 0.69295086]
第一/三/五行的数据为: [[0.5788188 0.89503475]
[0.00934004 0.97304482]
[0.79254743 0.90471139]]
第二列的全部数字: [0.89503475 0.69295086 0.97304482 0.24824508 0.90471139 0.61303427
0.48046491 0.58207312 0.45319231 0.67650157]
3. 使用numpy与matplotlib进行图像绘制
3.1 简单的图形
import numpy as np
import matplotlib.pyplot as plt
# 创建一个随机数据二维数组
data = np.random.rand(100, 2) # 生成100个随机数据的二维点集,取值范围是[0,1]
print('data: ', data)
# 将data按列进行拆分
x = data[:, 0]
y = data[:, 1]
# 绘制图形
plt.plot(x, y, 'go', markersize=5)
# 展示图形
plt.show()
图形如下:
3.2 绘制圆形
尝试将x, y的取值范围改变为[-1, 1]。np.random.rand(10000, 2)生成一个10000行2列的矩阵,其中的每个元素都是在0到1之间的随机数。然后将这个矩阵的每个元素乘以2,再减去1,这样就可以得到一个每个元素都在-1到1之间的随机数组。
import numpy as np
import matplotlib.pyplot as plt
data = 2 * np.random.rand(1000, 2) - 1 # 生成1000个随机数据的二维数组,取值范围是[-1,1]
# 将data进行列拆分
x = data[:, 0]
y = data[:, 1]
# 选取一个圆的范围
idx = x ** 2 + y ** 2 < 1
plt.plot(x[idx], y[idx], 'go', markersize=1)
plt.show()
图形如下:
3.3 绘制圆环
import numpy as np
import matplotlib.pyplot as plt
data = 2 * np.random.rand(10000, 2) - 1
print(data)
x = data[:, 0]
y = data[:, 1]
idx = x ** 2 + y ** 2 <= 1
hole = x ** 2 + y ** 2 < 0.25
idx = np.logical_and(idx, ~hole) # 进行逻辑与操作,将在idx范围内的和不在hole范围内的下标进行与操作
plt.plot(x[idx], y[idx], 'go', markersize=1)
plt.show()
图片如下:
若要显示更加清晰,可以增大点集的数量,取10000个点。
如图所示:
以上便是全部内容,若有错误欢迎指出,我会及时更正。希望一起学习进步!!!