##矩阵的拼接:
```python
垂直拼接函数: np.hstack((矩阵A, 矩阵B, 矩阵C....))
水平拼接函数: np.vstack((矩阵A, 矩阵B, 矩阵C....))
```

其他:
```python
向量垂直拼接成矩阵:np.column_stack((向量A, 向量B, 向量C...))
向量水- 阅读剩余部分 -
###自定义更改矩阵的形状:
```python
方式1-使用函数的方法: 矩阵.reshape((行, 列))
方法2-修改numpy属性: 矩阵.shape = (行, 列)
```

---
###将矩阵转为向量:
```python
方法1: 矩阵.ravel()
方法2: 矩阵.reshape(行*列) 或 - 阅读剩余部分 -
介绍:矩阵的条件判断是作用于每个元素的判断。
根据条件表达式返回布尔数组:

根据条件表达式得到符合条件元素的矩阵:

#索引:
##向量的索引:
向量的索引与普通列表的索引访问方式相同:

当一次需要获取多个索引的元素时需要使用 向量[[索引1, 索引2, 索引3....]] 的方式:

##矩阵的索引:
矩阵需要用双索引- 阅读剩余部分 -
##矩阵/向量的基本运算:
概念:某向量或矩阵与自然数加减乘除表示该向量或矩阵中的所有元素与该自然数加减乘除。
示例1:

示例2:

##矩阵/向量的相互运算:
矩阵/向量的互相加减:
:
基础:一维数组=向量 二维数组=矩阵
定义:
>1. ndarray是整个numpy的基础,他是一个由同种元素类型的元素组成的多维数组。
2. 数组的维数和元素数量由型(shape)决定。如一个数组ListA的shape为(3,4),表示这是个3行4列的二维数组。
3. 数组的维统称为轴(axis),如x轴、y轴。轴的数量叫做秩(rank),如(x, y)的秩为2。
4. ndarray的特点是大小固定,即创建ndarray一旦指定- 阅读剩余部分 -
##原始格式:
```python
Ether()/IP()/TCP()
```
##普通服务通讯包
```python
普通服务通讯包:IP(src,dst)/TCP(sport,dport) [TCP包部中应有服务对应端口]
普通服务通讯包:IP()/UDP() [UDP包部中应有服务对应端口]
```
##二层:
```python
ARP包:
结构:Ether()/ARP()
具体格式:Ether(dst='F- 阅读剩余部分 -
##最基础格式:
```python
Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(psrc='网关地址',pdst='靶机IP')
Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(psrc='网关地址',hwdst='靶机MAC')
```
##扩展格式:
```python
Ether(dst='ff:ff:ff:ff:ff:ff',type=0x0806)/ARP(op=1,hwsrc='攻击机MAC',p- 阅读剩余部分 -
##conf 变量保存了全局包的配置信息
````python
1. >>> conf
2. ASN1_default_codec =
3. AS_resolver =
4. BTsocket = SNAP Dot3 -> IP ...
36. netcache = arp_cache: 0 valid items. Timeout=120s in6_neighbor: 0 valid it...
37. noenum - 阅读剩余部分 -
##导入模块:
```python
from scapy.all import *
```
##函数:
```python
sniff()
```
##常用方法:
```python
count 计数,要捕获的数据包数,0指无穷大
store 存储嗅探数据包或丢弃数据包
offline 使用pCAP文件来读取数据包,而不是嗅探。
prn 将抓到的具体数据包存入某个函数中,使用该函数能对该数据包进行调用与处理
filter - 阅读剩余部分 -
##实现随机IP与MAC地址:
```python
随机IP:RandIP("*.*.*.*")
随机MAC:RandMAC("*:*:*:*:*:*")
随机字符串:RandString(字符串长度,"字符集")
其他随机:
RandShort() 生成1-65535的短整型
RandLong() 生成长整型
RandInt() 生成整型
```
![](http://www.flayerveo.com/usr/uploads/2020/02/- 阅读剩余部分 -