day03课件代码(上午)

本文深入探讨了NumPy库中的数组操作技巧,包括数组的重复、去重、统计分析等,同时通过matplotlib库实现了数据的可视化,如天气温度走势图的绘制与修饰,提供了丰富的代码实例。

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-运行后

【从高压输电线的架空地线中汲取电能】一个25千瓦受控电源从735千伏线路的架空地线中汲取电能的SimPowerSystems模型(Simulink仿真实现)内容概要:本文介绍了一个基于SimPowerSystems的Simulink仿真模型,用于模拟从735千伏高压输电线的架空地线中汲取25千瓦电能的受控电源系统。该模型聚焦于高压输电线路中架空地线的能量回收技术,通过仿真手段实现对电能采集过程的建模与控制策略验证,体现了电力系统中新型能源获取方式的技术可行性与工程应用潜力。文中还提及该资源属于一系列电力系统仿真研究的一部分,涵盖微电网、储能优化、碳流追踪、鲁棒调度等多个前沿方向,配套提供Matlab/Simulink代码及网盘资料链接,便于科研人员复现与拓展研究。; 适合人群:具备电力系统基础知识、熟悉Matlab/Simulink仿真环境,从事电力工程、能源回收或智能电网相关研究的科研人员及研究生;有一定编程与建模仿真经验的高年级本科生或工程技术人员。; 使用场景及目标:①研究高压输电线路中架空地线的能量回收机制与建模方法;②掌握基于Simulink的电力系统仿真技术,特别是受控电源与电网交互的动态特性分析;③为开展能源 harvesting、分布式供能、电力电子变换器控制等相关课题提供参考模型与技术支撑; 阅读建议:建议结合提供的仿真模型文件进行实操演练,重点理解系统结构设计、参数设置与控制逻辑实现;同时可延伸学习文档中提到的其他电力系统优化与仿真案例,以拓宽研究视野和技术积累。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值