day03课件代码(上午)

01-数组的重复与去重

import numpy as np

# 创建数组
# arr = np.array([9, 9, 9, 8, 8, 7, 6, 5, 7, 6, 5, 1, 2, 1, 2])
# 对数组进行去重
# unique
# 1、去重
# 2、排序
# 注意:unique排序效果 对中文数组不太适用
# arr= np.unique(arr)
# print("数组去重的结果为:\n",arr)

# 重复操作
arr = np.arange(9).reshape((3, 3))
print("arr:\n", arr)

# tile ---重复的对象是整个数组
# 参数为整数时,默认在列的方向上进行重复
# res = np.tile(arr,2)
# 参数为 形状时,在各个维度上进行重复
# res = np.tile(arr,(2,2))
# res = np.tile(arr,(2,2,2))
# print("res:\n",res)


# repeat  ---重复的对象应该是 整行、整列 或者单个元素
# 将 整列作为整体 向列的方向进行重复
# res = np.repeat(arr, 2, axis=1)
# 默认先将数组展开为1维之后 ,在重复的是每一个元素
# res = np.repeat(arr, 2)
# res = np.repeat(arr, [1, 2, 3], axis=1)
# 将整行 作为整体,重复指定的次数次
res = np.repeat(arr, [1, 2, 3], axis=0)
print("res:\n", res)

02-数组的统计分析

import numpy as np

# 创建数组
arr = np.arange(9).reshape((3, 3))
print("arr:\n", arr)

# sum mean std var  min max argmin  argmax cumsum  cumprod
# print("统计arr 的和",np.sum(arr,0))
# print("统计arr 的均值",np.mean(arr,0))
# print("统计arr 的标准差",np.std(arr,0))
# print("统计arr 的方差",np.var(arr,0))
# print("统计arr 的最小值",np.min(arr,0))
# print("统计arr 的最大值",np.max(arr,0))
# print("统计arr 的最小值下标",np.argmin(arr,0))
# print("统计arr 的最大值下标",np.argmax(arr,0))
# print("统计arr 的累计和",np.cumsum(arr,0))
# print("统计arr 的累计积",np.cumprod(arr,0))

# 如果不指定轴,默认统计整个数组
# print("统计arr 的累计积",np.sum(arr))

# arr.sum()

03-案例:iris花萼长度统计分析案例

import numpy as np

# 加载数据
iris_data = np.loadtxt("./iris_sepal_length.csv")
# print("iris_data:\n",iris_data)

# 排序
iris_data.sort()
# print("排序之后的结果:\n",iris_data)

# 去重
iris_data = np.unique(iris_data)
print("去重之后的结果:\n", iris_data)

# 求和
sum_iris_data = np.sum(iris_data, axis=0)
# print('求和的结果:\n',sum_iris_data)

# 累计和
cumsum_iris_data = np.cumsum(iris_data, axis=0)
print("求累计和的结果:\n", cumsum_iris_data)

# 均值
mean_iris_data = np.mean(iris_data, axis=0)
print("求均值的结果:\n", mean_iris_data)
# 标准差
std_iris_data = np.std(iris_data, axis=0)
print("求标准差的结果:\n", std_iris_data)
# 方差
var_iris_data = np.var(iris_data, axis=0)
print("求方差的结果:\n", var_iris_data)
# 最小值
min_iris_data = np.min(iris_data, axis=0)
print("求最小值的结果:\n", min_iris_data)
# 最大值
max_iris_data = np.max(iris_data, axis=0)
print("求最大值的结果:\n", max_iris_data)

# 结论:
# 这批iris花萼的最大长度为210.4
# 这批iris花萼的最小长度为4.3
# 这批iris花萼的平均长度为6.01142857143

04- matplotlib的初步认识(天气大纲)

import matplotlib.pyplot as plt
import numpy as np

"""
matplotlib ---数据可视化的库 
# 不仅可以绘制2-D图,也可以绘制3-D图
绘图三部曲:
    1、创建画布
    2、绘图
    3、图形展示
"""
# 下一周北京天气温度的走势图 ---折线图
# 1、创建画布
# figsize --画布的大小
# dpi --像素
# 返回--画布对象
plt.figure()

# 2、绘制图形
# 绘制折线图----要素:点------要素:坐标
# 构建坐标进行描点 ---(x1,y1)  (x2,y2) ...
# 先构建横坐标--一维数组
# 注意:如果横坐标是中文字符串形式的,先用序号代替,后续呢,用字符串替换序号
# 在构建纵坐标--与横坐标一一对应的纵坐标的值
x = np.arange(1, 8)  # [1,2,3,4,5,6,7]
y = np.array([-10, -8, -6, -10, -12, -4, 2])
# 绘制折线图
plt.plot(x,y)
# 3、图形展示
plt.show()

05-图形修饰 天气预报(折线图)

import matplotlib.pyplot as plt
import numpy as np

# 下一周北京天气温度的走势图 ---折线图
# 1、创建画布
# figsize --画布的大小
# dpi --像素
# 返回--画布对象
plt.figure()
# 修改RC参数,让其支持中文
plt.rcParams['font.sans-serif'] = 'SimHei'
# 再去修改RC参数,让其支持负号
plt.rcParams['axes.unicode_minus'] = False

# 2、绘制图形
# 绘制折线图----要素:点------要素:坐标
# 构建坐标进行描点 ---(x1,y1)  (x2,y2) ...
# 先构建横坐标--一维数组
# 注意:如果横坐标是中文字符串形式的,先用序号代替,后续呢,用字符串替换序号
# 在构建纵坐标--与横坐标一一对应的纵坐标的值
x = np.arange(1, 8)  # [1,2,3,4,5,6,7]
y1 = np.array([-10, -8, -6, -10, -12, -4, 2])  # 北京天气
y2 = np.array([26, 24, 22, 24, 25, 20, 18])  # 广州天气
# 绘制折线图
# color --线的颜色
# linestyle --线的样式
# linewidth ---线的宽度
# marker ---点的形状
# markersize --点的大小
# markerfacecolor --点的填充颜色
# markeredgecolor ---点的边缘颜色
# 更多的样式及颜色可以参考:https://www.cnblogs.com/darkknightzh/p/6117528.html
plt.plot(x, y1, color='r', linestyle=':', linewidth=1.2, marker="*", markersize=7, markerfacecolor='b',
         markeredgecolor='g')
plt.plot(x, y2, color='b', linestyle='-.', linewidth=1.2, marker="o", markersize=7, markerfacecolor='y',
         markeredgecolor='g')
# 因为有的修饰可以放在绘图之前,也可以放在绘图之后,但是其中的部分必须放在绘图之后,才进行功能显示
# 要求:所有的修饰都放在绘制之后
# 增加标题
plt.title("下一周北京、广州天气温度的走势图")
# 增加横轴名称
plt.xlabel("日期")
# 增加纵轴名称
plt.ylabel("温度℃")

# 将横轴上的序号替换为 真实中文字符串
# 修改横轴刻度
# 如果需要用中文来修改刻度时候
# 参数1 将要被替换的序号
# 参数2 需要替换的中文字符串
xticks = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
# 注意:替换的序号,需要与替换的中文字符串必须是一一对应的替换
plt.xticks(x, xticks)

# 如果只是修改数值的取值范围---重新设置刻度
# 参数 新的刻度
# 修改纵轴刻度
yticks = np.arange(-15, 31, 3)
plt.yticks(yticks)

# 增加图例
# loc ---调整图例的位置
plt.legend(["北京温度", "广州温度"], loc=0)

# 进行标注
for i, j in zip(x, y1):
    # 参数1 标注的横坐标
    # 参数2 标注的纵坐标
    # 参数3 标注的内容
    #  horizontalalignment='center' ---让标注水平居中
    plt.text(i, j + 0.7, "%d℃" % j, horizontalalignment='center')

for i, j in zip(x, y2):
    # 参数1 标注的横坐标
    # 参数2 标注的纵坐标
    # 参数3 标注的内容
    #  horizontalalignment='center' ---让标注水平居中
    plt.text(i, j + 0.7, "%d℃" % j, horizontalalignment='center')


# 保存图片---必须放置在所有修饰之后,show之前
plt.savefig("./下一周北京、广州天气温度的走势.png")

# 3、图形展示
plt.show()

05-运行后

发布了128 篇原创文章 · 获赞 24 · 访问量 4264

猜你喜欢

转载自blog.csdn.net/return_min/article/details/103886359