当前位置: 首页 > news >正文

sklearn学习

介绍:scaler:换算的意思

1. 归一化MinMaxScaler()

归一化的意思是将一堆数,如果比较离散,为了让数据更适合模型训练,将离散的数据压缩到0到1之间,以方便模型更高效优质的学习,而对数据的预处理

例如:[-100,3,50,800,10900]在这组数据中最小的是-100,最大是10900,这样的数太分散,如果压缩到0到1,则更方便神经网络学习

压缩数据的公式:

  • x 是原始特征值。
  • min( x ) 是特征的最⼩值。
  • max( x ) 是特征的最⼤值。
  • x' 是缩放后的特征值。
使用numpy对数据进行压缩:
import numpy as npdata = np.array([[11, 3, -10], [21, -30, 1], [100, 3, 12]])
maxitem = np.max(data, axis=0)
minitem = np.min(data, axis=0)
print(maxitem, minitem)
rangeitem = maxitem - minitemrangeitem[rangeitem == 0] = 1
result = (data-minitem)/rangeitem
print(result)   

解释:

        这个是使用numpy对数据进行压缩,使用以上的公式

        这里rangeitem[rangeitem == 0] = 1的解释:

rangeitem == 0会得到一个bool类型的数组[False False False],这样就构成了布尔索引,当为true也就是max和min相同时,为了确保分母不为0,则将其分母变为1

用sklearn来归一化:

import numpy as np
from sklearn.preprocessing import MinMaxScaler
print("方式一")
data = np.array([[11, 3, -10], [21, -30, 1], [100, 3, 12]])
scaler = MinMaxScaler()
scaler.fit(data)
print(scaler.data_min_,scaler.data_max_)
result1 = scaler.transform(data)
print(result1)
print("方式二")
#将data数组归一化,先调用构造函数创造归一化对象,然后使用fit合适求出min和max,再使用transform将使用min和max对数据进行归一化
result2 = MinMaxScaler().fit_transform(data)
print(result2)

解释:MinMaxScaler()是使用构造方法创建一个归一化器scaler

scaler.fit(数据)是对数据进行计算出最大最小特征值,scaler.transfrom(数据)是对数据使用最大最小值进行计算得出归一化的结果。

也可以简写:MinMaxScaler().fit_transform(data)

2. 标准化StandardScaler

就是将一堆数据,压缩为一个服从正太分布的数据,以方便后期神经网络学习,也就是对数据进行预处理

话不多说上代码:

from sklearn.preprocessing import StandardScalerdata = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
print("方式一")
scaler = StandardScaler()
scaler.fit(data)
#获取均值和方差
print(scaler.mean_,scaler.var_)
#使用均值和方差对data数据进行标准化处理
result = scaler.transform(data)print(result)
#将标准化的结果反向求出原始数据
inv_res = scaler.inverse_transform(result)
print(inv_res)print("方式二")
scaler1 = StandardScaler()
result1 = scaler1.fit_transform(data)
inv_res1 = scaler1.inverse_transform(result1)
print(inv_res1)

解释:StandardScaler()是获取标准化器对象scaler,有属性mean_均值,和var_方差

scaler.fit_transform(数据)意思是对数据进行标准化处理

scaler1.inverse_transform(result1)意思是对标准化后的数据进行反向求出原始数据

3. 缺失值处理SimpleImputer

这个SimpleImputer不是在sklearn.preprocessing包下的,而是sklearn.impute包下的

机器学习或数据挖掘中,常常会有重要的字段缺失值很多,但⼜不能舍弃字段的情况。因此,数据
预处理中⾮常重要的⼀项就是处理缺失值。
from sklearn.impute import SimpleImputer
import pandas as pd
df = pd.read_csv("titanic_train.csv")
age = df.loc[:,"Age"].values.reshape(-1,1)
print(age[:20])
print("===================")
age_median = SimpleImputer(strategy="median").fit_transform(age)
print(age_median[:20])
df.loc[:,"Age"]=age_median

解释,用panda读取csv数据,然后使用df.loc标签索引,0轴索引全部,1轴索引标签为Age的,让后使用.values将pandas结果的数据age列转化为np的数组,然后reshape变为以列为主的二维数据

SimpleImputer()是缺失值补全工具对象创建方法,然后照样使用.fit_transform(age)对age列进行缺失值补全,至于按照什么模式填补,则看SimpleImputer中传的strategy的参数,有平均值,中值填补等

4. Sklearn 中的三种编码工具详解

4.1 LabelEncoder

功能:将单一特征的分类数据转换为整数形式。

  • 每个类别映射到一个唯一的整数。
  • 适用于单个特征(一维数据)。

特点

  • 不生成额外的列。
  • 不适合处理无序的分类数据,因为整数编码可能引入错误的顺序关系。

工作原理:

from sklearn.preprocessing import LabelEncoderdata = ['red', 'green', 'blue', 'green']
encoder = LabelEncoder()
encoded = encoder.fit_transform(data)
print(encoded)
# 输出: [2, 1, 0, 1]

映射关系为:

blue -> 0
green -> 1
red -> 2

4.2 OrdinalEncoder

功能:将二维数据中的多个特征的类别映射为整数值。

  • 每个类别映射到一个唯一的整数值。
  • 适用于具有顺序关系的类别数据(如“低、中、高”)。

特点

  • 用于多特征
  • 如果类别之间无顺序关系,使用此方法可能导致模型误解类别之间的关系。

工作原理

from sklearn.preprocessing import OrdinalEncoderdata = [['low'], ['medium'], ['high'], ['medium']]
encoder = OrdinalEncoder()
encoded = encoder.fit_transform(data)
print(encoded)
# 输出: [[1.], [2.], [0.], [2.]]

映射关系为:

high -> 0
low -> 1
medium -> 2

注意:

这里的映射顺序是人为指定的。如果类别本身无序(比如颜色),这种编码可能会引入不正确的顺序信息。

4.3 OneHotEncoder

功能:将类别变量转换为哑变量(独热编码)。

  • 每个类别用一个二进制列表示。
  • 适用于无序的类别数据。

特点

  • 不引入类别之间的顺序关系。
  • 输出结果可以是稀疏矩阵,节省存储空间。

工作原理

from sklearn.preprocessing import OneHotEncoderdata = [['red'], ['green'], ['blue'], ['green']]
encoder = OneHotEncoder(sparse=False)
encoded = encoder.fit_transform(data)
print(encoded)

输出为:

[[0. 0. 1.][0. 1. 0.][1. 0. 0.][0. 1. 0.]]

映射关系为:

red   -> [0. 0. 1.]
green -> [0. 1. 0.]
blue  -> [1. 0. 0.]

4.4. 编码方法的选择

编码方法适用场景优点缺点
LabelEncode一维特征,单个特征有少量类别,无需表示顺序关系。简单直接,输出紧凑可能引入虚假顺序
OrdinalEncoder多个特征,类别本身有顺序关系(如教育程度:小学<中学<大学)。适合处理有序类别无法处理无序类别
OneHotEncoder多个特征,类别之间无顺序关系(如颜色、城市名称)。避免顺序误解,生成独立的二进制列高维度类别会导致维数过大,稀疏矩阵占用空间

4.5. 为什么要区分哑变量和整数编码?

  • 整数编码:可能引入类别之间的虚假顺序关系。例如,如果模型看到 Color=[Red, Green, Blue] 编码为 [0, 1, 2],它可能错误地认为 GreenRed 大,而 BlueGreen 大。
  • 哑变量(独热编码):通过创建独立的列避免类别之间的顺序关系,特别适用于非数值型的分类变量。

4.6. 示例对比

from sklearn.preprocessing import LabelEncoder, OneHotEncoder, OrdinalEncoder
import numpy as np# 数据
data = np.array(['red', 'green', 'blue', 'green', 'red'])# 1. LabelEncoder
le = LabelEncoder()
label_encoded = le.fit_transform(data)
print("LabelEncoder:", label_encoded)
# 输出: [2 1 0 1 2]# 2. OrdinalEncoder (适用于二维数据)
oe = OrdinalEncoder()
ordinal_encoded = oe.fit_transform(data.reshape(-1, 1))
print("OrdinalEncoder:", ordinal_encoded)
# 输出: [[2.]
#       [1.]
#       [0.]
#       [1.]
#       [2.]]# 3. OneHotEncoder
ohe = OneHotEncoder(sparse=False)
one_hot_encoded = ohe.fit_transform(data.reshape(-1, 1))
print("OneHotEncoder:\n", one_hot_encoded)
# 输出:
# [[0. 0. 1.]
#  [0. 1. 0.]
#  [1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

4.7. 总结

  • 编码和哑变量是处理分类数据的重要工具。
  • LabelEncoderOrdinalEncoder 将类别转换为整数,适用于少量类别的数据,但需注意顺序问题。
  • OneHotEncoder 将类别转化为二进制向量,适合无序类别数据。
  • 选择合适的编码方式可以提高模型的准确性和效率。

5. knn分类

KNN (K-Nearest Neighbors)

简介:

KNN 是一种 监督学习 算法,主要用于分类和回归问题。它的基本思想是:给定一个新的数据点,查找在特征空间中最接近(最近)的 K 个数据点,然后通过这些数据点的标签来预测新数据点的标签。

工作原理:

  1. 选择 K 值:首先选择一个正整数 K,即最近邻的数量。
  2. 计算距离:对于每一个待分类的数据点,计算它与所有训练数据点的距离。常用的距离度量方式包括欧氏距离、曼哈顿距离等。
  3. 选取 K 个最近邻:根据计算得到的距离,找到 K 个距离最近的训练数据点。
  4. 分类:对于分类任务,通过 K 个邻居的标签进行投票,选票最多的类别作为该点的预测标签。
    • 回归任务:对于回归任务,取这 K 个邻居的平均值作为预测值。

优点:

  • 简单且直观,易于理解和实现。
  • 非参数化算法,不需要假设数据的分布。
  • 可以用于多类别分类。

缺点:

  • 计算量大,尤其在数据量大的时候,因为每次预测都要计算与所有训练数据点的距离。
  • 对于高维数据,KNN 的表现会变差(维度灾难),因为高维空间中数据点之间的距离差异变得不明显。
  • 对噪声敏感,异常值可能会影响最终的分类结果。

应用场景:

  • 推荐系统(例如电影推荐)。
  • 图像识别、语音识别。
  • 基于相似度的分类任务。
import matplotlib.pyplot as plt
import numpy as np
from sklearn.neighbors import KNeighborsClassifier# 定义样本特征数据和对应的标签
X = np.array([[1, 2], [2, 3], [3, 1], [2, 4], [6, 5], [7, 8], [8, 6], [6, 7], [7, 9], [8, 8]])
labels = np.array([0, 0, 0, 0, 1, 1, 1, 1, 1, 1])# 定义一个新的特征数据
X_new = np.array([[3, 5]])# 绘制类别为0的数据,红色点
plt.scatter(X[labels == 0, 0], X[labels == 0, 1], color="red", label="Class 0")# 绘制类别为1的数据,蓝色点
plt.scatter(X[labels == 1, 0], X[labels == 1, 1], color="blue", marker="o", label="Class 1")# 绘制新的特征数据,绿色加号
plt.scatter(X_new[0, 0], X_new[0, 1], color="green", marker="+", label="New Point")# 创建KNeighborsClassifier分类器对象
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X, labels)  # 使用样本的特征和标签训Lor
new_label = knn.predict(X_new)  # 预测新数据# 绘制图例和标题
plt.legend()
plt.title("KNN Visualization")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")# 显示图像
plt.show()

6. kmeans分类

简介:

KMeans 是一种 无监督学习 聚类算法,用于将数据集分成若干个簇(clusters)。算法试图根据数据点之间的相似性将数据划分成 K 个簇。每个簇由其簇中心(质心)代表,算法通过最小化数据点到质心的距离来寻找最佳的簇划分。

工作原理:

  1. 选择 K 值:指定需要聚类的簇的数量 K
  2. 初始化质心:随机选择 K 个数据点作为初始簇中心(质心)。
  3. 分配数据点:将每个数据点分配到距离最近的簇中心,形成 K 个簇。
  4. 更新质心:计算每个簇中所有数据点的平均值,并将其作为新的簇中心。
  5. 迭代:重复步骤 3 和 4,直到簇中心不再变化,或者变化非常小,表明聚类已经收敛。

优点:

  • 算法简单且高效,适合大规模数据。
  • 结果易于理解,可以通过质心直观地表示每个簇。
  • 适用于球形簇数据。

缺点:

  • 需要指定 K 值,即簇的数量,通常需要通过实验来确定。
  • 对初始簇中心敏感,可能会陷入局部最优解。可以通过多次运行并选择最佳结果来缓解这一问题。
  • 对离群点(噪声)敏感,离群点可能影响簇的划分。
  • 不适用于非球形簇,或者簇大小差异过大的情况。

应用场景:

  • 客户细分(例如根据消费习惯将用户分组)。
  • 图像压缩(通过聚类色彩进行压缩)。
  • 数据降维和特征学习。

import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans# 生成数据
X, y = make_blobs(n_samples=200, centers=5, random_state=0)
print(X,y)
# 绘制原始数据点
plt.scatter(X[:, 0], X[:, 1], c=y)  # 使用y作为颜色标识# 创建KMeans聚类模型
kmeans = KMeans(n_clusters=10, random_state=3)
kmeans.fit(X)# 获取KMeans聚类结果的标签
y_kmeans = kmeans.predict(X)
print(y_kmeans)
# 绘制聚类后的数据点
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans)  # 根据聚类结果给每个点上色plt.show()

7. KNN和KMeans对比

8. 总结sklearn中的几个方法

归一化MinMaxScaler是sklearn.preprocess下的

标准化StandardScaler是sklearn.preprocess下的

缺失值SimpleImputer是sklearn.Imputer下的

三种编码LabelEncoder,OrdinalEncoder,OneHotEncoder都是sklearn.preprocess下的

我总结就是,sklearn是对数据做预处理的,先将数据进行缺失值补全,然后再对非数字类型的数据编码为数字类型,有三种编码,更加场景使用适合的编码模式,最后再将所有数字类型转为0到1之间或者转为正太分布,以适应模型学习。

预处理:缺失值补全------->数据编码统一转为数字类型-------->归一化或标准化压缩数据----->做一定的分类处理

相关文章:

sklearn学习

介绍&#xff1a;scaler&#xff1a;换算的意思 1. 归一化MinMaxScaler() 归一化的意思是将一堆数&#xff0c;如果比较离散&#xff0c;为了让数据更适合模型训练&#xff0c;将离散的数据压缩到0到1之间&#xff0c;以方便模型更高效优质的学习&#xff0c;而对数据的预处理…...

Ubuntu下手动设置Nvidia显卡风扇转速

在Ubuntu下&#xff0c;您可以使用 NVIDIA显卡驱动程序提供的工具手动调整风扇转速。以下是详细步骤&#xff1a; 1. 确保已安装NVIDIA显卡驱动 确保系统已经安装了正确的NVIDIA驱动&#xff1a; nvidia-smi如果没有输出驱动信息&#xff0c;请先安装驱动&#xff1a; sudo…...

Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…...

ES 和Kibana-v2 带用户登录验证

1. 前言 ElasticSearch、可视化操作工具Kibana。如果你是Linux centos系统的话&#xff0c;下面的指令可以一路CV完成服务的部署。 2. 服务搭建 2.1. 部署ElasticSearch 拉取docker镜像 docker pull elasticsearch:7.17.21 创建挂载卷目录 mkdir /**/es-data -p mkdir /**/…...

CodeIgniter如何手动将模型连接到数据库

在CodeIgniter中&#xff0c;模型通常是自动与数据库连接的&#xff0c;因为模型类&#xff08;CI_Model&#xff09;已经内置了对数据库操作的支持。但是&#xff0c;如果你需要手动指定数据库连接或者进行一些特殊的数据库配置&#xff0c;你可以通过几种方式来实现。 1. 使…...

商用密码应用安全性评估,密评整体方案,密评管理测评要求和指南,运维文档,软件项目安全设计相关文档合集(Word原件)

一、 密码应用安全性评估方案 &#xff08;一&#xff09; 密码应用测评工作思路 1.1.1. 测评准备活动的主要任务 1.1.2. 测评准备活动的输出文档 1.2. 方案编制活动 1.2.1. 方案编制活动的主要任务 1.2.2. 方案编制活动的输出文档 1.3. 现场预评估活动 1.3.1. 现场测评…...

AI赋能电商:构建高效、智能化的新零售生态

随着人工智能&#xff08;AI&#xff09;技术的不断进步&#xff0c;其在电商领域的应用日益广泛&#xff0c;从购物推荐到供应链管理&#xff0c;再到商品定价&#xff0c;AI正在全面改变传统电商的运营模式&#xff0c;并推动行业向智能化和精细化方向发展。本文将探讨如何利…...

【GAMES101笔记速查——Lecture 19 Cameras,Lenses and Light Fields】

本章节内容&#xff1a;相机、棱镜、光场 计算机图形学的两种成像方法&#xff1a; 1.合成方法&#xff1a;光栅化、光线追踪&#xff08;展示出现实没有的东西&#xff09; 2.捕捉方法&#xff1a;相机&#xff08;捕捉现实已有的东西&#xff09; 目录 1 相机 1.1 针孔相…...

虚拟机上搭建达梦DSC简略步骤

vmware 17 centos 7.6 达梦 dm8_20240920_x86_rh7_64.iso cd /d C:\Program Files (x86)\VMware\VMware Workstation\.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "F:\vm\dmdsc\sharedisk\share-dcr.vmdk" .\vmware-vdiskmanager.exe -c -s 100MB -a l…...

Python和R荧光分光光度法

&#x1f335;Python片段 Python在处理荧光分光光度法数据方面非常强大&#xff0c;得益于其丰富的数据处理和可视化库&#xff0c;可以轻松实现从数据读取到分析的完整流程。荧光分光光度法用于测量物质在激发光照射下发出的荧光强度&#xff0c;常用于定量分析和特性研究。 …...

电子学习中的关键游戏化元素

游戏化彻底改变了电子学习领域&#xff0c;提供了一种使学习具有吸引力、互动性和有效性的方法。通过将类似游戏的功能集成到教育平台中&#xff0c;教育工作者可以增强动力&#xff0c;提高知识记忆&#xff0c;并创造动态的学习体验。游戏化的关键要素为设计与学习者产生共鸣…...

算法日记 33 day 动态规划(打家劫舍,股票买卖)

今天来看看动态规划的打家劫舍和买卖股票的问题。 上题目&#xff01;&#xff01;&#xff01;&#xff01; 题目&#xff1a;打家劫舍 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金…...

JavaScript的let、var、const

这张图片主要介绍了JavaScript中的三种变量声明方式&#xff1a;let、var和const。 1. let 含义&#xff1a;let是现在实际开发中常用的变量声明方式。特点&#xff1a; 块级作用域&#xff1a;let声明的变量只在其所在的块级作用域内有效。例如&#xff1a;{let x 10; } co…...

C语言-数学基础问题

一.奇数、偶数问题 1.从键盘上输入一个整数&#xff0c;判断并输出它是奇数还是偶数。 //从键盘上输入一个整数&#xff0c;判断并输出它是奇数还是偶数。 main() {int i;printf("输入一个整数:\n");scanf("%d",&i);if(i%20)printf("它是偶数\n…...

解决单元测试时找不到类名

场景&#xff1a; springboot单元测试mockito对mapper进行mock时&#xff1a; tk.mybatis.mapper.mapperexception: 无法获取实体类 XX.xx 对应的表名 分析&#xff1a; 使用了一个方法&#xff1a;Example examplenew Example(User.class); 进入源码后发现Entityhelper没…...

从零开始-VitePress 构建个人博客上传GitHub自动构建访问

从零开始-VitePress 构建个人博客上传GitHub自动构建访问 序言 VitePress 官网&#xff1a;VitePress 中文版 1. 什么是 VitePress VitePress 是一个静态站点生成器 (SSG)&#xff0c;专为构建快速、以内容为中心的站点而设计。简而言之&#xff0c;VitePress 获取用 Markdown…...

【案例学习】如何使用Minitab实现包装过程的自动化和改进

Masimo 是一家全球性的医疗技术公司&#xff0c;致力于开发和生产各种行业领先的监控技术&#xff0c;包括创新的测量、传感器和患者监护仪。在 Masimo Hospital Automation 平台的助力下&#xff0c;Masimo 的连接、自动化、远程医疗和远程监控解决方案正在改善医院内外的护理…...

【ArcGISPro】使用AI提取要素-土地分类(sentinel2)

Sentinel2数据处理 【ArcGISPro】Sentinel-2数据处理-CSDN博客 土地覆盖类型分类 处理结果...

深度解析:Nginx模块架构与工作机制的奥秘

文章目录 前言Nginx是什么?Ngnix特点&#xff1a; 一、Nginx模块与工作原理1.Nginx的模块1.1 Nginx模块常规的HTTP请求和响应的流程图:1.2 Nginx的模块从结构上分为如下三类&#xff1a;1.3 Nginx的模块从功能上分为如下三类: 2.Nginx的进程模型2.1 Nginx进程结构2.2 nginx进程…...

分布式kettle调度平台v6.4.0新功能介绍

介绍 Kettle&#xff08;也称为Pentaho Data Integration&#xff09;是一款开源的ETL&#xff08;Extract, Transform, Load&#xff09;工具&#xff0c;由Pentaho&#xff08;现为Hitachi Vantara&#xff09;开发和维护。它提供了一套强大的数据集成和转换功能&#xff0c…...

企业数字化转型现状

国家数字经济战略背景 2018年以来&#xff0c;国家政府不断出台政策规范我国企业数字化治理市场。2018年9月颁布《关于发展数字经济稳定并扩大就业的指导意见》&#xff0c;支持建设一批数字经济创新创业孵化机构。积极推进供应链创新与应用&#xff0c;支持构建以企业为主导。…...

极客大挑战2024wp

极客大挑战2024wp web 和misc 都没咋做出来&#xff0c;全靠pwn✌带飞 排名 密码学和re没做出几个&#xff0c;就不发了 web ez_pop 源代码 <?php Class SYC{public $starven;public function __call($name, $arguments){if(preg_match(/%|iconv|UCS|UTF|rot|quoted…...

将django+vue项目发布部署到服务器

1.部署django后端服务 部署架构 1.1 下载依赖插件 pip3.8 freeze > requirements.txt1.2 安装依赖插件 pip3 install -r requirements.txt1.3 安装mysql数据库 apt install mysql-server初始化数据库 CREATE USER admin% IDENTIFIED WITH mysql_native_password BY 123…...

函数类型注释和Union联合类型注释

函数类型注释格式&#xff08;调用时提示输入参数的类型&#xff09;: )def 函数名(形参名:类型&#xff0c;形参名:类型&#xff09;->函数返回值类型: 函数体 Union联合类型注释&#xff08;可注释多种类型混合的变量&#xff09;格式: #先导入模块 from typing import…...

python画图|无坐标轴自由划线操作fig.add_artist(lines.Line2D()函数

【1】引言 新发现了一种自由划线操作函数&#xff0c;和大家共享。 【2】官网教程 点击下述代码&#xff0c;直达官网&#xff1a; https://matplotlib.org/stable/gallery/misc/fig_x.html#sphx-glr-gallery-misc-fig-x-py 官网代码非常简洁&#xff0c;我进行了解读。 …...

MacOS系统上Jmeter 录制脚本遇到的证书坑位

一、JMeter介绍与安装 1&#xff0c;下载及安装 jmeter官网地址 二、录制百度链接https请求时&#xff0c;需要导入jmeter相关证书到macos系统的更目录中. 导入方式&#xff0c;直接拖入mac的系统中&#xff0c;始终新人就可以&#xff1b; 三、jmeter 创建相关的录制组件…...

网络层协议IP

对于网络层我们直接通过IP协议来了解其内容 一.IP协议 首先我们先来了解几个概念&#xff1a; 主机&#xff1a;配有IP地址&#xff0c;但是不进行路由控制的设备 路由器&#xff1a;配有IP地址&#xff0c;同时进行路由控制的设备 节点&#xff1a;主机和路由器的统称 所以现在…...

《硬件架构的艺术》笔记(七):处理字节顺序

介绍 本章主要介绍字节顺序的的基本规则。&#xff08;感觉偏软件了&#xff0c;不知道为啥那么会放进《硬件架构的艺术》这本书&#xff09;。 定义 字节顺序定义数据在计算机系统中的存储格式&#xff0c;描述存储器中的MSB和LSB的位置。对于数据始终以32位形式保存在存储器…...

反向代理模块

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…...

风尚云网前端学习:一个简易前端新手友好的HTML5页面布局与样式设计

风尚云网前端学习&#xff1a;一个简易前端新手友好的HTML5页面布局与样式设计 简介 在前端开发的世界里&#xff0c;HTML5和CSS3是构建现代网页的基石。本文将通过一个简单的HTML5页面模板&#xff0c;展示如何使用HTML5的结构化元素和CSS3的样式特性&#xff0c;来创建一个…...

自己做的网站怎么发布/工具seo

2020年高考已经落下帷幕&#xff0c;全国各地高考试题依然是大家热议的话题&#xff0c;特别是今年的高考数学题&#xff0c;瞬间冲上微博热搜。今年高考数学题&#xff0c;再次出现编程题&#xff01;高考&#xff0c;已经开始考“编程”了&#xff01;2020年高考再现编程题20…...

威海高区有没有建设局的网站/关键词是怎么排名的

写在前面的话&#xff0c;作为一个不熬夜的人&#xff0c;一觉醒来发现Kotlin成为了Android的官方语言&#xff0c;可谓是大喜过望。为了趁热打铁&#xff0c;我决定提前三天放出原定本周日Release的文章。希望能及时让大家了解一下Kotlin。 相信很多开发人员&#xff0c;尤其是…...

网页如何制作/seo推广外包报价表

题记&#xff1a;写这篇博客要主是加深自己对列执行的认识和总结实现算法时的一些验经和训教&#xff0c;如果有错误请指出&#xff0c;万分感谢。 Null&#xff0c;在T-SQL中是个很诡异的内容&#xff0c;它的处置方式不按常规来走&#xff0c;以至于我们在处置数据的时候&…...

女生做网站编辑好吗/网站页面禁止访问

C代码管理没有规矩很难管理&#xff0c;不像类管理那样方便&#xff0c;我们一遍一遍的写代码但是重复的很多&#xff0c;如何管理自己写的C程序以供以后使用方便&#xff1f;因此好用的C代码管理小工具出现了&#xff0c;可用于代码管理&#xff0c;将计算机里面的代码导入到数…...

北京微信网站制作/2020年十大关键词

概述 需要开发一款工具&#xff0c;要使用的到json的解析和一个良好的日志系统。 寻找新的开源库我选择了 https://www.libhunt.com/网站&#xff0c;找到了三方库。 日志&#xff1a; sqdlog json&#xff1a; json 导入模式 选择了git的submodule。 [submodule "lib/…...

网站兼容性代码/百度文库首页官网

Primavera P6R8.3 PPM 也是 15.1前用的最多的版本之一&#xff0c;其功能足够完全&#xff0c;而且还特别支持Win XP&#xff0c;和目前的最新的v21.12在一些关键数据结构上也几无大的差别&#xff1b; 为了方便更多P6项目管理信息化人员&#xff0c;我分享下该版的数据字典&am…...