
数据结构与算法
xjtuwfj
这个作者很懒,什么都没留下…
展开
-
用3-sigma原则处理DataFrame中的异常值
自定义的两个函数定义一个对每一个特征(每一列)进行进行处理的函数,返回数值落在在(μ-3σ,μ+3σ)之外的行索引。只要有一个特征落在范围之外,则这一条样本被删除。def three_sigma(Ser1): ''' Ser1:表示传入DataFrame的某一列。 ''' rule = (Ser1.mean()-3*Ser1.std()>Ser1) | (Ser1.mean()+3*Ser1.std()< Ser1) index = np.arange原创 2021-06-04 08:46:21 · 9456 阅读 · 2 评论 -
优先队列代码实现(python)
优先队列优先队列分为最大优先队列和最小优先队列。最大优先队列:无论入队顺序如何,都是最大元素优先出队,基于最大堆实现。最小优先队列:无论入队顺序如何,都是最小元素优先出队,基于最小堆实现。二叉堆结点“上浮”和“下沉”的时间复杂度是O(logn)O(logn)O(logn),所以优先队列入队和出队的时间复杂度也是O(logn)O(logn)O(logn)。# 最大优先队列class PriorityQueue: def __init__(self): self.array原创 2021-04-16 21:15:27 · 533 阅读 · 0 评论 -
二叉堆代码实现(python)
二叉堆二叉堆本质上是一种完全二叉树。堆的插入和删除操作,时间复杂度是O(logn),构建的复杂的是O(n)。二叉堆的存储方式为顺序存储,所有结点都存储在数组中def up_adjust(array=[]): ''' 二叉堆尾结点上浮操作 :param array: 原数组 :return: ''' child_index = len(array)-1 parent_index = (child_index-1)//2 temp = arr原创 2021-04-13 20:30:52 · 367 阅读 · 0 评论 -
二叉树深度优先遍历及广度优先遍历(python)
二叉树创建class TreeNode: def __init__(self,data): self.data = data self.left = None self.right = Nonedef create_binary_tree(input_list=[]): ''' 构建二叉树 :param input_list: 输入数列 :return: node ''' if not isin原创 2021-04-13 20:25:03 · 301 阅读 · 0 评论