一分钟了解pandas以及散列表
前言
pandas目前十分火爆,我们简单地了解一下吧
一、pandas是什么?
pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、使用步骤
1.引入库
代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下:
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
三、散列表:
✍ 散列表是一种数据集,其中的数据项的存储方式尤其有利于将来快速的查找定位。
✍ 散列表中的每一个存储位置,成为槽(slot),可以用来保存数据项,每个槽有唯一一个的名称。
✍例如:一个包含11个槽的散列表,槽的名称分别为0~10,在插入数据项之前,每个槽的值都是None,表示为空槽。
✍实现从数据项到存储槽名称转化的,称为散列函数
有一种常用的散列方法是:求余数,将数据项除以散列表的大小,得到的余数称为槽号。实际上求余数方法会以不同形式出现在所有散列函数里,因为散列函数返回的槽号必须在散列表大小范围之内,所以一般会对散列表大小求余。
✍槽被数据项占据的比例称为散列表的**“负载因子”。**
要查找某个数据项是否存在于表中,我们只需要使用同一个散列函数,对查找项进行计算,测试下返回的槽号所对应的槽中是否有数据项即可!实现O(1)时间复杂度的查找算法。
缺陷
:冲突,数据存在同一个槽里。
四、解决冲突
完美散列函数
:给定一组数据项,如果一个散列函数能把每个数据项映射到不同的槽中,那么这个散列函数就可以称为:完美散列函数。对于一组固定的数据,总能想办法设计出完美散列函数。
但如果数据项经常性的变动,很难有一个系统性的方法来设计对应的完美散列函数,当然冲突也不是致命性的错误,我们会有办法处理的。
获得完美散列函数的一种方法是扩大散列表的容量,大到所有可能出现的数据项都能够占据不同的槽。
但是这种方法对于可能数据项范围过大的情况并不实用,比如我们要保存手机号(11位),完美散列函数得要求散列表具备百亿个槽!会浪费太多的存储空间。
退而求其次,好的散列函数需要具备的特性:
1.冲突最少(近似完美)
2.计算难度低(额外开销小)
3.充分分散数据项(节约空间)**
- 点赞
- 收藏
- 关注作者
评论(0)