<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ShengXIABai的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ShengXIABai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ShengXIABai]]></copyright><item><title><![CDATA[Python学习 Day74 Matplotlib进阶 画布上创建多个子图 03]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/122379339</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/122379339</guid><author>ShengXIABai</author><pubDate>Sat, 08 Jan 2022 14:50:19 +0800</pubDate><description><![CDATA[matplotlib进阶使用（2）
画布上创建多个子图
（一）subplot()
原型：plt.subplot(nrows, ncols, index)
作用：返回给定网格位置的axes对象
说明：

在当前图中，该函数创建并返回一个Axes对象，在ncolsaxes的nrows网格的位置索引处。索引从1到nrows * ncols，以行主顺序递增。如果nrows，ncols和index都小于10。索引也可以作为单个，连接，三个数字给出
例如，subplot(2, 3, 3)和subplot(233)都在当]]></description><category></category></item><item><title><![CDATA[Python学习 Day74 Figure与Axes类 02]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/122378376</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/122378376</guid><author>ShengXIABai</author><pubDate>Sat, 08 Jan 2022 13:21:23 +0800</pubDate><description><![CDATA[matplotlib进阶使用（1）
一、使用面向对象思想画图
虽然使用matplotlib.pyplot模块很容易快速生成绘图，但建议使用面向对象的方法，因为它可以更好地控制和自定义绘图，并且matplotlib.axes.Axes类中也提供了大多数函数
使用更正式的面向对象方法背后的主要思想是创建图形对象，然后只调用该对象的方法或属性，这种方法有助于更好地处理其上有多个绘图的画布
在面向对象的界面中，pyplot仅用于一些功能，如图形创建，用户显式创建和跟踪图形和轴对象。在此级别，用户使用pyplot创建]]></description><category></category></item><item><title><![CDATA[Python学习 Day73 matplotlib 01]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121435406</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121435406</guid><author>ShengXIABai</author><pubDate>Sat, 20 Nov 2021 11:46:02 +0800</pubDate><description><![CDATA[matplotlib概述
一、简介
Matplotlib最初由John D. Hunter于2003年编写
Matplotlib是用于数据可视化的最流行的Python包之一
它是一个跨平台库，用于根据数组中的数据制作2D图
Matplotlib是用Python编写的，并使用了Python的数值数学扩展NumPy
它提供了一个面向对象的API，有助于使用Python GUI工具包(如PyQt，WxPythonotTkinter)在应用程序中嵌入绘图
它也可以用于Python和IPython shell，Jup]]></description><category></category></item><item><title><![CDATA[Python学习 Day72 numpy_IO操作]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121419518</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121419518</guid><author>ShengXIABai</author><pubDate>Fri, 19 Nov 2021 12:15:26 +0800</pubDate><description><![CDATA[IO操作
numpy 可以读写磁盘上的文本数据或二进制数据
numpy 为 ndarray 对象引入了一个简单的文件格式：npy
npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息




常用IO函数
作用




load() 和 save()
是读写文件数组数据的两个主要函数，默认情况下，数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中


savez()
用于将多个数组写入文件，默认情况下，数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件]]></description><category></category></item><item><title><![CDATA[Python学习 Day72 numpy 拷贝]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121418882</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121418882</guid><author>ShengXIABai</author><pubDate>Fri, 19 Nov 2021 11:38:44 +0800</pubDate><description><![CDATA[拷贝
一、赋值
简单的赋值不会创建数组对象的副本。 相反，它使用原始数组的相同id()来访问它。 id()返回 Python 对象的通用标识符，类似于 C 中的指针
一个数组的任何变化都反映在另一个数组上。 例如，一个数组的形状改变也会改变另一个数组的形状


二、视图
又可称为浅拷贝，是数据的一个别称或引用，通过该别称或引用亦便可访问、操作原有数据，但原有数据不会产生拷贝。对视图进行修改，它会影响到原始数据，物理内存在同一位置

（1）数组切片获得视图

numpy 的切片操作返回原数据的视图，修改数据会]]></description><category></category></item><item><title><![CDATA[Python学习 Day71 numpy函数 01]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121300973</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121300973</guid><author>ShengXIABai</author><pubDate>Sun, 14 Nov 2021 11:22:14 +0800</pubDate><description><![CDATA[函数
一、字符串函数
用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作
基于 Python 内置库中的标准字符串函数
在字符数组类（numpy.char）中定义
1.add()
对两个数组的元素进行字符串连接

2.multiply()
返回按元素多重连接后的字符串

3.center
将字符串居中，并使用指定字符在左侧和右侧进行填充

4.capitalize()
将字符串第一个字母转换为大写

5.title()
将字符串的每个单词的第一个]]></description><category></category></item><item><title><![CDATA[Python学习 Day70 numpy数组操作 02]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121188609</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121188609</guid><author>ShengXIABai</author><pubDate>Sat, 13 Nov 2021 10:24:24 +0800</pubDate><description><![CDATA[numpy数组操作
一、修改数组形状
1.reshape()方法
原型：reshape(shape, order='C')
作用：不改变数据的条件下修改形状




参数
说明




shape
形状


order
‘C’ – 按行，‘F’ – 按列，‘A’ – 原顺序，‘k’ – 元素在内存中的出现顺序



2.flat数组元素迭代器

3.flatten()方法
原型：flatten(order='C')
作用：展平的数组元素并拷贝一份，顺序通常是"C风格"
注意：修改返回的数组不会对原数组产生影]]></description><category></category></item><item><title><![CDATA[Python学习 Day69 numpy元素操作 01]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121175003</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121175003</guid><author>ShengXIABai</author><pubDate>Sun, 07 Nov 2021 10:20:43 +0800</pubDate><description><![CDATA[numpy元素操作
一、切片和索引
ndarray对象的内容可以通过索引或切片来访问和修改，与 Python 中 list 的切片操作一样
ndarray 数组可以基于 0 - n 的下标进行索引，切片对象可以通过内置的 slice 函数，并设置 start, stop 及 step 参数进行，从原数组中切割出一个新数组


冒号 : 的解释

如果只放置一个参数，如 [2]，将返回与该索引相对应的单个元素。如果为 [2:]，表示从该索引开始以后的所有项都将被提取。如果使用了两个参数，如 [2:7]，那么则]]></description><category></category></item><item><title><![CDATA[Python学习 Day68 Ndarray数组属性 03]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121174398</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121174398</guid><author>ShengXIABai</author><pubDate>Sat, 06 Nov 2021 09:37:14 +0800</pubDate><description><![CDATA[numpy数组的基本使用
一、numpy数组与Python中列表的对比
效率对比



二、Ndarray数组属性
NumPy 数组的维数称为秩（rank），一维数组的秩为 1，二维数组的秩为 2，以此类推
在 NumPy中，每一个线性的数组称为是一个轴（axis），也就是维度（dimensions）。比如说，二维数组相当于是两个一维数组，其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是 NumPy 中的轴（axis），第一个轴相当于是底层数组，第二个轴是底层数组里的数组。而轴的数量——秩，就]]></description><category></category></item><item><title><![CDATA[Python学习 Day67 创建Ndarray数组对象 02]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121096163</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121096163</guid><author>ShengXIABai</author><pubDate>Fri, 05 Nov 2021 11:09:03 +0800</pubDate><description><![CDATA[操作Ndarray对象
一、创建Ndarray数组对象
说明
numpy默认ndarray的所有元素的类型是相同的，这一点与Python中的list不同
如果传进来的列表中包含不同的类型，则统一为同一类型，优先级：str&gt;float&gt;int
array()函数
原型：numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
作用：创建Ndarray数组对象




参数
说明


]]></description><category></category></item><item><title><![CDATA[Python学习 Day66 numpy-Ndarray对象 01]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121093529</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121093529</guid><author>ShengXIABai</author><pubDate>Tue, 02 Nov 2021 10:54:12 +0800</pubDate><description><![CDATA[numpy
一、numpy简介
（一）由来
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库，支持大量的维度数组与矩阵运算，此外也针对数组运算提供大量的数学函数库
NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发，2005 年，Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色，并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发
（二]]></description><category></category></item><item><title><![CDATA[Python学习 Day65 anaconda安装及使用 03]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121060470</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121060470</guid><author>ShengXIABai</author><pubDate>Sun, 31 Oct 2021 15:56:44 +0800</pubDate><description><![CDATA[anaconda安装及使用
一、简介
1.概述
Anaconda就是可以便捷获取包且对包能够进行管理，包括了python和很多常见的软件库和一个包管理器conda。常见的科学计算类的库都包含在里面了，使得安装比常规python安装要容易，同时对环境可以统一管理的发行版本
Anaconda是专注于数据分析的Python发行版本，包含了conda、Python等190多个科学包及其依赖项
2.特点

开源
安装过程简单
高性能使用Python和R语言
免费的社区支持

3.与virtualenv的对比

ana]]></description><category></category></item><item><title><![CDATA[Python学习 Day64 jupyter安装及使用 02]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/121048085</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/121048085</guid><author>ShengXIABai</author><pubDate>Sun, 31 Oct 2021 09:51:49 +0800</pubDate><description><![CDATA[jupyter安装及使用
一、简介

jupyter Notebook是一个交互式的Web应用程序，便于创建和共享文学化程序文档，支持实时代码、数学方程、可视化和MarkDown
用途包括：数据清理和转换、数值模拟、统计建模、机器学习等，是数据分析常用的应用程序，运行方法只需在使用的文件夹下输入命令jupyter notebook即可

1.组成部分：

网页应用：网页应用即网页形式的、结合了编写说明文档、数学公式、图片以及其他富媒体形式的工具。简言之，网页应用是可以实现各种功能的工具
文档：即jupyte]]></description><category></category></item><item><title><![CDATA[Python学习 Day63 IPython安装及使用 01]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/120966065</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/120966065</guid><author>ShengXIABai</author><pubDate>Sat, 30 Oct 2021 10:52:37 +0800</pubDate><description><![CDATA[数据分析工具
一、ipython
（一）简介
ipython是python的一个交互式shell，比默认的“python shell”更方便，支持变量自动补全，自动缩进，支持bash shell命令，内置了许多强大的功能和函数。
IPython是基于BSD开源的，并且IPython为交互式计算提供了一个丰富的架构，包含如下内容：

1.强大的交互式shell
2.工Jupyter notebook使用的jupyter内核
3.交互式的数据可视化工具
4.灵活、可嵌入的解释器
5.易于使用、高性能的并行计算工]]></description><category></category></item><item><title><![CDATA[Python学习 Day62 基于TFTP协议的Socket编程 02]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/120698996</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/120698996</guid><author>ShengXIABai</author><pubDate>Sun, 24 Oct 2021 11:16:06 +0800</pubDate><description><![CDATA[一、UDP的echo客户端
需求：

1.客户端可以发送多条数据
2.客户端如果发送一个“exit”则客户端退出，释放资源
3.服务器端收到什么就返回什么

from socket import *

#定义变量，是否退出客户端的标记
flag = True

#1.创建套接字
client_socket = socket(AF_INET,SOCK_DGRAM)

while flag:
    #2.定义一个接受信息的目标,8080是一个目标服务器的端口，127.0.0.1是目标服务器地址
    # s]]></description><category></category></item><item><title><![CDATA[Python学习 Day61 基于UDP协议的Socket编程 01]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/120696881</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/120696881</guid><author>ShengXIABai</author><pubDate>Mon, 11 Oct 2021 10:43:52 +0800</pubDate><description><![CDATA[Socket
一、通信
（一）本地进程间的通信
同台机器不同进程之间的提高方式有多种如：
1.队列
2.同步（互斥锁、条件变量等）
（二）网络进程之间的通信
1.如何唯一标识一个进程（本地PID、网络IP+传输协议+端口）
2.socket（套接字）是实现不同主机进程之间的通讯方式

二、Socket编程
语法
socket.socket(AddressFamily,Type)


Address Family（常用）：可以选择 AF_INET（用于 Internet 进程间通信） 或者 AF_UNIX（用]]></description><category></category></item><item><title><![CDATA[Python学习 Day60 12306抢票 08]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/118736244</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/118736244</guid><author>ShengXIABai</author><pubDate>Wed, 14 Jul 2021 22:19:50 +0800</pubDate><description><![CDATA[12306抢票
一、登录功能

]]></description><category></category></item><item><title><![CDATA[Python学习 Day59 页面等待 07]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/118659278</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/118659278</guid><author>ShengXIABai</author><pubDate>Sun, 11 Jul 2021 20:53:03 +0800</pubDate><description><![CDATA[页面等待
因为现在页面多使用Ajax请求，难以确定元素在当前时刻是否存在，若要使用的元素在当前时刻不存在，那么程序就会报错，解决的方案就是等待
一、selenium提供的两种等待方式
隐式等待

调用driver.implicitly_wait，在获取不可用的元素之前，会先等待N秒钟的时间

显示等待

显示等待是表明某个条件成立后才执行获取元素的 操作
也可以在等待的时候指定一个最大的时间，若超出此时间就抛出一个异常
selenium.webdriver.support.excepted_conditio]]></description><category></category></item><item><title><![CDATA[Python学习 Day59 selenium操作Cookie 06]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/118658847</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/118658847</guid><author>ShengXIABai</author><pubDate>Sun, 11 Jul 2021 20:18:20 +0800</pubDate><description><![CDATA[selenium操作Cookie
一、相关操作

1.获取所有cookie信息driver.get_cookies()
2.获取指定cookie信息sriver.get_cookie(‘BAIDUID’)
3.添加cookie信息

driver.add_cookie({‘name’:‘zhangsan’,‘value’:‘123456’})


4.删除cookie 信息

driver.delete_cookie(‘zhangsan’)
driver.delete_all_cookies()




二]]></description><category></category></item><item><title><![CDATA[Python学习 Day59 selenium行为链 05]]></title><link>https://blog.youkuaiyun.com/ShengXIABai/article/details/118658194</link><guid>https://blog.youkuaiyun.com/ShengXIABai/article/details/118658194</guid><author>ShengXIABai</author><pubDate>Sun, 11 Jul 2021 19:51:36 +0800</pubDate><description><![CDATA[selenium行为链
一、行为链概述
1.为什么需要行为链

网站反爬：网站在服务器端设置验证程序，判断浏览器操作行为是否符合人类的行为
有更多的复杂操作，在自动化测试中经常使用

2.行为链如何使用

（1）导入from senlium.webdriver.common.action_chains import ActionChains
（2）创建对象actions = ActionChains(driver)
（3）移动到某元素actions.move_to_element(element)
（4）文]]></description><category></category></item></channel></rss>