18/7/18~18/7/20实习报告

7/18 星期三

已办事项:

  1. 注册用户,熟悉了Confluence的基本使用。
  2. 了解并部署开发环境,针对python2.7的基本语法进行学习。
  3. 类比IDEA,熟悉了PyCharm的基本操作。
  4. 飞鸽工具的注册使用。
  5. VS code中调试python程序。

Python学习记录:

      1. 关于Python语法上的问题,尤其是针对不变对象的使用上要注意。类比基本数据类型和引用数据类型。
      2. 语句结束无需分号,语句块衔接采用冒号。
      3. 格式化输出类比C语言样式。
      4. 字符编码问题需要注意下。
      5. 转义字符'\':针对相关字符如\n \t \\ 进行转义,打印% 采用 %% 形式 消除转义r''
      6. 空值操作 None 不能理解为0,0是有意义的,而None是一个特殊的空值。
      7. 数据类型:
          内置有序集合:
          list 列表 有序集合
          tuple元组 不可变 代码安全性高 定义时就元素就应该确定。不可变对象
          dict 字典 key-value 空间换时间的存储手段
          set 集合 key集合
      8. Python语言是动态语言,变量类型随时可以更改。
      9. *args是可变参数,接收的是一个tuple。

待办事项:

  1. 继续学习python3相关语法。数据库读写方面,绘图功能方面。
  2. SVN版本控制管理工具的学习使用。
  3. Markdown文本编辑器的学习使用。

7/19 星期四

已办事项:

  1. 学习Python3基本语法。
  2. 实现了Python访问MySQL数据库,并实现了简单的CURD操作。
  3. 了解Python中matplotlib绘图库,对语法进行了研究。额外了解了seaborn可视化组件,提供了多种复杂的绘图功能。
  4. 开始着手学习pandas数据分析库。
  5. SVN版本控制管理基本工具的使用。

Python学习记录:

  1. 可变参数的使用kw, 拓展函数功能。例如提交用户表单,非必填项就可以为可变参数。kw接收的是一个dict。
  2. 命名关键字参数,限制关键字参数的名字。只接受某些变量作为关键字参数。
  3. 递归函数,定义简单,逻辑清晰。
    需要注意:
    使用递归函数要注意防止栈溢出,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的。所以,调用测试过多,会导致栈溢出。
    解决方法:尾递归优化 -- 循环也是一种特殊的尾递归
    尾递归是指:在函数返回的时候,调用函数本身。并且,return语句不能包含表达式(例如乘法)。这样,编译器或者是解释器可以
    把尾递归做优化,使得递归无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。

  4. 访问数据库 MySQL
    步骤:
    1. 导入pymysql
    2. 建立数据库连接
    3. 获取游标
    4. 构建SQL语句
    获取单条数据:cur.fetchone()
    获取所有数据:cur.fetchall()
    所影响的行数:rowcount 只读属性
    5. 执行查询 -- 提交
    6. 异常处理 -- 回滚
    7. 关闭连接

  5. 关于绘图 -- 数据分析 + 绘图展示
    matplotlib:交互式绘图控件,直线图,散点图,饼图,柱状图,折线图等。
    seaborn:种类繁多的绘图功能。
    pandas:数据分析必须掌握的一个库。

  6. panda数据分析
    采用了科赛网上的习题集,进行pandas的数据分析练习。
    https://www.kesci.com/apps/home/project/59e77a636d213335f38daec2
    pandas基础命令速查表:
    https://www.kesci.com/apps/home/project/59e389b54663f7655c48f518

    扫描二维码关注公众号,回复: 2528498 查看本文章

待办事项:

  1. 继续学习Python3相关语法。
  2. pandas基础语法以及案例实现。
  3. 数据展示平台。

7/20 星期五

已办事项:

  1. 学习pandas数据分析相关语法。
  2. 配置更新本地maven dependency仓库。
  3. 虚拟机中静态IP的配置。
  4. Linux下yum命令的学习。
  5. 虚拟机环境下配置Zabbix。

Python学习记录:

  1. pandas数据选取
    根据数据展示方式的不同,数据选取方式也不同
    DataFrame 数据框
    df = pd.DataFrame(np.random.rand(5, 5), columns = list('ABCDE'))
    df[['B', 'E']] -- 按照列名选取
    df.iloc[0, :] -- 选取第一行
    Series 数组
    s = pd.Series(np.array(['I', 'Love', 'Data']))
    s.iloc[0] -- 按照任意位置选取
    s.loc['index_one'] -- 按照索引选取

  2. 数据清洗
    DataFrame:
    pd.isnull(df) -- 检查数据空值出现的情况,返回由布尔型组成的列
    pd.notnull(df) -- 检查数据非空值出现的情况,返回由布尔型组成的列
    df.dropna() -- 移除数据框DataFrame中包含空值的行
    df.dropna(axis = 1) -- 移除数据框DataFrame中包含空值的列
    df.fillna(x) -- 空值替换
    df.rename(columns = lambda x: x + 2) --选择列重命名
    columns = {
    'old_name', 
    'new_name'
    }
    df.set_index('index_name') -- 改变索引
    Series:
    s.fillna(s.mean()) -- 将空值用平均值替代
    s.astype(float) -- 将数组元素格式化为浮点数
    s.replace([1, 9], ['one', 'nine']) -- 将数组元素中的9用nine替代,list整体替换也可以

  3. 数据过滤,排序
    df[df[col_name] > num1 & df[col_name] < num2] -- 选取数据框中列名下元素满足要求的记录(元组)
    df.sort_values(
    ['col1', 'col2'] , 
    ascending = [True, False]
    ) -- 按照数据框的col1升序,col2降序

Zabbix部署记录:

  1. 准备LAMP环境,拥有独立IP的虚拟机(静态IP)。
  2. 虚拟机端部署Zabbix-Server端,被控端部署Zabbix-Agentd端。
  3. 由于Centos7不支持MySQL,数据库方面采用了mariadb。
  4. 禁用防火墙,设置开机自启服务。
  5. httpd,Linux环境下Apache超文本传输协议(HTTP)服务器的主程序。
  6. yum命令的使用规范,命令被锁后的解决方案。
  7. netstat网络工具的安装:yum install net-tools。
  8. 目前现状如下图:
    Get value from agent failed: ZBX_TCP_READ() failed: [104] Connection reset by peer 

      

待办事项:

  1. pandas中数据分组语法重点理解。
  2. Zabbix监控平台问题解决。

猜你喜欢

转载自blog.csdn.net/Nerver_77/article/details/81161506