一、多维数组
1、生成ndarray (array函数)
1、np.array()
import numpy as np
data1=[6,7.5,8,0,1] #创建简单的列表
print(data1)
arr1=np.array(data1) #将列表转化为数组
print(arr1)
2、ndarry的数据类型
(1)dtype()
data=np.random.randn(2,3) #生成随机数组
print(data)
print(data.shape)
print(data.dtype)
(2)转化数组的数据类型:astype()
(3)astype生成一个新的数组
arr=np.array([1,2,3,4,5])
print(arr.dtype)
float_arr=arr.astype(np.float64) #转换数组的数据类型
print(float_arr.dtype)
3、numpy数组算术
(1)逐元素操作
arr=np.array([[1.,2.,3.],[4.,5.,6.]])
print(arr)
print(arr*arr)
4、索引与切片
(1)基础索引与切片
arr=np.arange(10)
print(arr)
print(arr[5:8])
arr[5:8]=12
print(arr)
(2)布尔索引
names=np.array(["Bob","Joe","Will","Bob","Will","Joe","Joe",])
print(names=="Bob")
5、数组转置与换轴
(1)arr.T
(2)内积:np.dot() x.dot()等价于np.dot(x,y)
arr=np.random.randn(6,3)
print(arr)
print(arr.T)
print(np.dot(arr.T,arr))
(3)换轴:transpose()
arr=np.arrange(16).reshape((2,2,6))
arr.transpose((1,0,2)) #将第二个轴和第一个轴变换位置
二、函数
1、一元通用函数
(1)平方根 sqrt()
arr=np.arange(10)
print(arr)
print(np.sqrt(arr))
(2)自然指数值 exp()
print(np.exp(arr))
(3)返回数组的小数部分和整数部分 modf()
arr=np.random.randn(7)*5
print(arr)
remainder,whole_part=np.modf(arr)
print(remainder)
print(whole_part)
2、二元通用函数
(1)、最大值 maximum()
x=np.random.randn(8)
print(x)
y=np.random.randn(8)
print(y)
print(np.maximum(x,y))
3、矩阵分解的标准函数集
(1)、numpy.linalg()
(1.1)、方阵的逆矩阵 inv()
(1.2)、QR分解 qr()
from numpy.linalg import inv,qr
x=np.random.randn(5,5)
print(x)
mat=x.T.dot(x) #内积
print(inv(mat)) #求逆
q,r=qr(mat)
print(r)
4、随机数生成器
numpy.random()
三、数组编程
1、将条件逻辑作为数组操作 where()
xarr=np.array([1.1,1.2,1.3,1.4,1.5])
yarr=np.array([2.1,2.2,2.3,2.4,2.5])
cond=np.array([True,False,True,True,False]) #是否是x的值
result=np.where(cond,xarr,yarr)
print(result) #result([1.1,2.2,1.3,1.4,2.5])
2、数学和统计方法 mean()、sum()、cumsum() #从0元素来累计和、cumprod() # 从1元素来累计积
arr=np.random.randn(5,4)
print(arr)
print(arr.mean()) #取总均值
print(np.mean(arr))
print(arr.mean(axis=1)) #按列数取均值
print(arr.mean(1))
3、布尔值数组的方法 any() all()
print(arr.sum(0)) #从0元素来是加总
arr=np.array([[0,1,2],[3,4,5],[6,7,8]])
print(arr)
print(arr.cumsum(axis=0)) #axis=0行数加总
print(arr.cumprod(axis=1)) #axis=1列数加总
bools=np.array([False,False,True,False])
print(bools.any()) #至少有一个
print(bools.all()) #全部都是
4、计算唯一值并排序:unique()
ints=np.array([3,3,3,2,2,1,1,4,4])
print(np.unique(ints)) #唯一值
html超文本标记语言
定义:
超文本标记语言,标准通用标记语言下的一个应用。 “超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
整体结构:
一个网页对应于一个HTML文件,HTML文件以.htm或.html为扩展名。可以使用任何能够生成TXT类型源文件的文本编辑来产生HTML文件。 标准的HTML文件都具有一个基本的整体结构,即HTML文件的开头与结尾标志和HTML的头部与实体2大部分。有3个双标记符用于页面整体结构的确认。
使用:
每种HTML标记符在使用中可带有不同的属性项,用于描述该标记符说明的内容显示不同的效果。正文标记符中提供以下属性来改变文本的颜色及页面背景。
BGCOLOR 用于定义网页的背景色
BACKGROUND 用于定义网页背景图案的图像文件
TEXT 用于定义正文字符的颜色,默认为黑色
LINK 用于定义网页中超级链接字符的颜色,默认为蓝色
VLINK 用于定义网页中已被访问过的超接链接字符的颜色,默认为紫红色
ALINK 用于定义被鼠标选中,但未使用时超链字符的颜色,默认为红色
例如:标记将定义页面的背景色为黑色,正文字体显示为白色。
以上属性使用中,需要对颜色进行说明,在HTML中对颜色可使用2种方法说明颜色属性值,即颜色名称(英文名)和颜色值。其中颜色值用6个十六进制数来分别描述红、绿 、蓝三原色的配方法——称为RGB值,每2个十六进制数表示一种颜色。使用颜色值时,应在值前冠以“#”号。
使用图案代替背景颜色,可以使页面更生动、美观。例如:
可将图像文件image.gif所表示的一幅图像作为页面的背景,若图像幅面不够大,将会将图像重复平铺在窗口中。
爬虫
网络爬虫为搜索引擎从万维网下载网页。一般分为传统爬虫和聚焦爬虫。
传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。通俗的讲,也就是通过源码解析来获得想要的内容。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
防爬虫:KS-WAF将爬虫行为分为搜索引擎爬虫及扫描程序爬虫,可屏蔽特定的搜索引擎爬虫节省带宽和性能,也可屏蔽扫描程序爬虫,避免网站被恶意抓取页面。[1]