Python
姬香
人生到处知何似,应似飞鸿踏雪泥
展开
-
python如何导入(import)不同文件夹的文件
导入同一级的文件import file1导入下级目录的文件,需要在文件夹里新建一个空白的__init__.py文件,然后导入from dir2 import file2导入上级目录下的文件,需要使用sys.pathimport sys sys.path.append("..") import file3导入上级目录的下一级文件,也需要使用sys.pathim...原创 2019-11-18 18:29:00 · 7152 阅读 · 2 评论 -
京东笔试题——消消乐问题
消消乐# 1a = [[3,1,2,1,1],[1,1,1,1,3],[1,1,1,1,1],[1,1,1,1,1],[3,1,2,2,2]] def candy(line): R, C = 5, 5 changed = True while changed: changed = False for r in range(...原创 2019-10-29 22:46:25 · 517 阅读 · 0 评论 -
网易游戏模拟笔试8.4-第一题AC100%,第二题AC50%
由于在参加大疆的考试,所以完成了大疆的考试,8.20进入了考场,少了一个多小时。网易游戏的题目还算简单。第一题缴税问题,小于5000元不交税,否则(工资-5000)为需要缴税的部分,然后分批次计算缴税费用。import sysn = int(sys.stdin.readline().strip())for i in range(n): v = int(sys.stdi...原创 2019-08-04 21:46:30 · 799 阅读 · 2 评论 -
Python的深拷贝与浅拷贝区别
直接赋值:随着原变量而变化浅拷贝:copy.copy 只拷贝父对象,不会拷贝对象的内部的子对象深拷贝:copy.deepcopy 拷贝对象及其子对象原创 2019-08-02 21:57:08 · 161 阅读 · 0 评论 -
作业帮笔试7.31
1.非递归中序遍历用栈的方式完成,由于后进先出的特性,不断压入根节点的所有左节点直到当前节点为空,然后弹出节点,并且遍历节点的右节点。如果有节点有左子树,则继续压入。。class Solution: def inorderTraversal(self, root: TreeNode) -> List[int]: # cur当做指针 cur =...原创 2019-08-02 15:43:53 · 558 阅读 · 0 评论 -
算法&数据结构(七):动态规划
理解动态规划:将一个问题拆成几个子问题,分别求解这些子问题,即可推断出大问题的解。求解时,需要设计状态函数,转移方程。leetcode:300. 最长上升子序列问题描述:给定一个无序的整数数组,找到其中最长上升子序列的长度解法一:动态规划思路:遍历数组的每个元素,如果当前元素大于在他前面的任何一个元素,状态转移方程为 if n-1 < n, f(n) = f(n...原创 2019-07-25 17:18:54 · 286 阅读 · 0 评论 -
算法&数据结构(一):字符串
leetcode:3. 无重复字符的最长子串问题描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。解法:滑动窗口,元素如果不在字典里面,就右移右边界(扩大);元素在字典里面,就右移左边界(缩小)。通过右边界的指针循环遍历,直到右边界达到末尾。因为左边界最多比右边界在右边一位,因而不用规定左边界。时间复杂度:O(1)class Solution: def...原创 2019-07-24 23:32:15 · 269 阅读 · 0 评论 -
算法&数据结构(五):栈与队列
leetcode:347. Top K Frequent Elements问题描述:给定一个非空数组,返回前K个出现频率最高的元素。解法:字典存放元素和频率,创建优先队列保存前K个(频率,元素)自动最小堆排序。# 排序算法# 时间复杂度:O(),其中 n 表示数组的长度。# 空间复杂度:O(n),最极端的情况下(每个元素都不同),用于存储元素及其频率的 Map 需要存储 n 个键...原创 2019-08-04 18:47:16 · 308 阅读 · 0 评论 -
算法&数据结构(八):回溯法
回溯是一种通过穷举所有可能情况来找到所有解的算法。如果一个候选解最后被发现并不是可行解,回溯算法会舍弃它,并在前面的一些步骤做出一些修改,并重新尝试找到可行解。leetcode:17. 电话号码的字母组合问题描述:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射。注意 1 不对应任何字母。解法:如果没有剩余数字需要输入,则组合完成。如果还有数字...原创 2019-08-04 18:47:28 · 374 阅读 · 0 评论 -
算法&数据结构(六):二叉树
leetcode:617. 合并二叉树问题描述:给定两个二叉树,合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。解法:指定其中一个树,如果到达叶子节点,则下一步返回另一个树的结点(包含这个节点的左右子树)时间复杂度:log(n)class Solution(object): d...原创 2019-07-28 14:59:00 · 249 阅读 · 0 评论 -
算法&数据结构(四):链表
剑指offer:从尾到头打印链表问题描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解法:栈 a=[] a.append() a.pop() a.pop(0)时间复杂度:O(n)# class ListNode:# def __init__(self, x):# self.val = x# se...原创 2019-07-23 17:08:22 · 187 阅读 · 0 评论 -
分类算法(三):贝叶斯分类器的原理
对贝叶斯分类来说,考虑如何基于概率和误判损失来选择最优的类别标记。贝叶斯公式判别式:给定x,直接建模p(c|x)来预测c,例如决策树、BP神经网络、支持向量机生成式:先对联合概率分布p(x,c)建模,再得到p(c|x),例如贝叶斯。 :先验概率,样本所占样本空间的比例。先验概率是指我们主观通过事件发生次数对概率的判断。 :泳衣归一化的证据因子 :条件概率,或似然。 ...原创 2019-07-10 21:41:07 · 485 阅读 · 0 评论 -
TensorFlow 源码学习(一)
前段时间,我突然有了一个想法,“框架总有新的出现,重要的是其中的包含的算法思想和设计方式”,深度学习比起机器学习,理论更加简洁,全靠网络的训练,于是我打算研究一下TensorFlow 的源代码。目前在网上找到的资料就是这本《TensorFlow 内核剖析》,感谢大佬的分享。(项目链接:https://github.com/horance-liu/tensorflow-internals)以下是...原创 2019-07-10 16:39:04 · 357 阅读 · 0 评论 -
《Attention is All You Need》论文理解Transformer
谷歌的Transformer模型最早是用于机器翻译任务,当时达到了SOTA效果。Attention is All You Need:https://arxiv.org/abs/1706.03762Tensorflow:https://github.com/tensorflow/tensor2tensorPytorch代码:http://nlp.seas.harvard.edu/2018...原创 2019-07-14 00:07:23 · 1565 阅读 · 0 评论 -
分类算法(二):SVM的原理
支持向量机基本模型定义为特征空间上的间隔最大的线性分类器。而它的学习策略为最大化分类间隔,最终可转化为凸二次规划问题求解。SVM为非参数模型。SVM的损失函数采用的是hingeloss。在学习分类器的时候,SVM只考虑与分类最相关的少数支持向量点。应用:解决二分类或者多分类问题最优分类超平面最优分类超平面–尽可能的远离所有类别的数据点,对已知和未知数据都能准确地分类,因而,我们需要寻找...原创 2019-07-09 23:38:15 · 7198 阅读 · 0 评论 -
算法&数据结构(二):查找与排序算法
重点掌握二分查找、归并排序、快速排序不同排序算法的时间复杂度与空间复杂度1. 冒泡排序比较相邻的元素,如果第一个比第二个大,就交换。从开始到结尾,这步做完后,最后的元素会是最大的数。然后重复,从开始元素到倒数第二。a = [1,5,6,0,2,4,1,2,0,5,3]for i in range(len(a)): # 设定一个标记,若为true,则表示此次循环没有...原创 2019-07-22 15:01:33 · 317 阅读 · 0 评论 -
算法&数据结构(三):数组
leetcode:448. 找到所有数组中消失的数字问题描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。不使用额外空间且时间复杂度为O(n)解法:把元素的值作为下标,将下标对应的值取负,然后返回正数的下标时间复杂度: O(n)class...原创 2019-07-23 15:54:29 · 433 阅读 · 0 评论 -
中文文本分类的总结
文本分类算法从机器学习的“人工特征 + lr/svm/xgboost”,到深度学习的"word embedding + DNN"、“language model + decoder”,不断演变。0.文本的预处理1)清洗数据:带有HTML标签、URL地址等非文本内容,长串数字或字母、无意义的文本。2)变形词识别和替换:特殊符号替换、同音近型替换(拼音首字母)、简繁替换3)停用词与标点...原创 2019-09-05 00:09:21 · 4335 阅读 · 2 评论 -
KEEP笔试
题目1:给的数据的x和y,返回最小二乘法的k和b方法:将x和y的值保存为两个数组,然后按照最小二乘法来求解。最后得到的b与测试用例保留的个数少了一位,无法通过测试。。。x = [1,2,3]y = [3,5,6]def fun(x, y): size = len(x) i = 0 sum_xy = 0 sum_y = 0 sum_x = 0 ...原创 2019-09-04 23:39:56 · 788 阅读 · 0 评论 -
算法&数据结构(十):并查集
leetcode:200. 岛屿数量问题描述:给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。解法:并查集,如果当前点为1,则为1相邻节点合并到同一集合。集合的查询需要遍历到顶点为止。时间复杂度:O(n*n)class Solution(object...原创 2019-09-02 16:37:29 · 198 阅读 · 0 评论 -
算法&数据结构(九):贪心算法
leetcode:621. 任务调度器问题描述:解法:首先找到完成次数最多的任务,完成这个任务需要时间为 (count - 1) * (n + 1) + 1,接着找到相同任务次数(count)的其他任务,每个任务+1。但是有个意外情况,会导致任务总时间小于数组长度,例如(任务种类-1)> n, [A,A,B,B,C,C,D], n=2,这时可以依次完成任务 ABCDABC。时间复...原创 2019-08-17 10:56:00 · 218 阅读 · 0 评论 -
Batch Normalization原理
Internal Covariate ShiftInternal Covariate Shift 问题:训练过程中,由于深层网络中参数变化,引起内部结点数据分布发生变化。而ICS使得后层网络不断调整以适应输入数据分布的变化,导致学习率的降低;并且ICS使得网络训练容易陷入梯度饱和区,减缓收敛速度。为了减缓ICS问题,可以固定每一层网络输入值的分布,具体方法为白化、BN。白化白化(W...原创 2019-08-12 22:38:04 · 235 阅读 · 0 评论 -
字节跳动 8.25 笔试 第一、二、三、四题
第一题题目:假设用户a,b,c,如果a和b之间关系大于等于3,则a和b是一类;如果ab一类,bc一类,则abc一类,输入关系矩阵,返回类数。思路:关系矩阵沿着对角线对称,因而只需要遍历(i, n) ,保存值大于等于3的关系,返回 n - 满足一类的长度,注意可能导致结果小于1,需要处理。n = int(input())line = []for i in range(n): ...原创 2019-08-25 22:21:07 · 608 阅读 · 0 评论 -
快手8.25 第一第二题
第一题要求图片最早的位置不变,图片的相对顺序不变n 每N个只能有一个是图片m 数组长度line = ['V_0','V_1','V_2','P_3','P_4','P_5','V_6','P_7','V_8','V_9']第一题只AC 80% 求解??ans = []n = int(input())m = int(input())line = []for i i...原创 2019-08-25 18:36:11 · 288 阅读 · 0 评论 -
360笔试——2019.08.15
1.求表面积思路:顶部和底部不会被遮挡,且当v = grid[i][j] > 0,有且只有2个面。四周东南西北,取决于grid[i][j]的个数,再减去上下左右遮挡它的个数(注意最小为0,不能加上负数)def surfaceArea(grid): # 顶部和底部不会被遮挡,且当v = grid[i][j] > 0,有且只有2个面 # 四周东南西北,取决于gri...原创 2019-08-15 21:24:18 · 1279 阅读 · 2 评论 -
网易互娱笔试8.11:三道题AC
第一题:给n个数组,计算每个数组里面的元素有多少个1,相同1次数为一类,计算每个数组有几类。思路:减1做&运算。注意将答案放在数组里面分别打印,否则报错。#coding=utf-8# 本题为考试多行输入输出规范示例,无需提交,不计分。import sysdef count_one(nums): res = [] for num in nums: ...原创 2019-08-11 17:49:09 · 1963 阅读 · 2 评论 -
头条一面二面(7.14):面试内容记录
1. 部门:用户中心用户关系判断,社交网络,恶意行为,风险控制。2. 自我介绍技能:pytorch、tensorflow、python、C++、SQL知识领域:机器学习、深度学习、NLP(文本生成、文本分类、对话理解)个性:积极乐观(开心果),善于自学(两天学会C语言),亲和力强,善于团队合作,条理清楚、适应能力和幽默感亮点(能胜任此岗位的优点):会搞懂算法原理,查看...原创 2019-08-01 00:31:03 · 382 阅读 · 0 评论 -
华为7.31笔试(第一题AC、第二题AC、第三题超纲)
第一题题目:小明是个强迫症卖家,有10000台设备,卖的均价要求最接近D元,输出卖出的台数N,总售价M输入 0<D<10,精确到小数点后12位 ; 输出 M N思路:均价与D相接近,初始化M,N为1。然后计算均价M/N。如果均价 > 幸运数D,则台数(分母)增加。如果均价 <= 幸运数D,则总售价(分子)增加。直到 M N 超出循环,其中...原创 2019-08-01 00:02:52 · 4264 阅读 · 4 评论 -
网易有道笔试8.3
第四题:很奇怪不知道为何测试通过了,AC-0%,求解??#coding=utf-8# 本题为考试单行多行输入输出规范示例,无需提交,不计分。import sys n = int(sys.stdin.readline().strip())for _ in range(n): s = sys.stdin.readline().strip() t = sys.stdin...原创 2019-08-04 21:50:14 · 782 阅读 · 0 评论 -
分类算法及其应用场景
单一的分类方法主要包括:LR逻辑回归,SVM支持向量机,DT决策树、NB朴素贝叶斯、NN人工神经网络、K-近邻;集成学习算法:基于Bagging和Boosting算法思想,RF随机森林,GBDT,Adaboost,XGboost。...原创 2019-07-09 22:26:53 · 6203 阅读 · 0 评论 -
模型融合:Stacking源码解析
第一层:训练数据:通过5-fold切分数据集分别训练和测试,将model1的预测值保存为P1,作为model2的训练数据。测试数据:通过每次训练的model1预测所有的测试数据,然后取平均值得到T1。如果第一层有三个模型,则得到预测值矩阵(P1, P2, P3)和 预测值矩阵 (T1, T2, T3)。第二层:预测值矩阵(P1, P2, P3)作为训练集,预测值矩阵 (T1, ...原创 2019-07-14 00:09:49 · 878 阅读 · 0 评论 -
Python3学习笔记1-1
代码代码块语法遵循标准markdown代码,例如:# 迭代def fact(n): if n == 1: return 1 return n * fact(n-1)fact(1)1#[x * x for x in range(1,11) if x % 2 == 0][4, 16, 36, 64, 100][m + n for m in原创 2018-10-17 21:15:38 · 201 阅读 · 0 评论 -
python中的list与array
array就是披上了python外衣的C的数组,里面存放的都是相同的数据类型python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。...原创 2018-10-17 21:12:59 · 211 阅读 · 0 评论 -
python的数据预处理
# GB18030,全称:国家标准GB18030 - 2005《信息技术中文编码字符集》,是中华人民共和国现时最新的内码字集,# 是GB18030 - 2000《信息技术信息交换用汉字编码字符集基本集的扩充》的修订版。GB18030与GB2312 - 1980和GBK兼容,共收录汉字70244个df = pd.read_csv(path, encoding="gb18030")# 去掉集...原创 2019-10-24 20:07:42 · 218 阅读 · 0 评论 -
合并不同csv文件到一个文件
import osimport pandas as pdPath = r'/home/data/csvfiles/' #要拼接的文件夹及其完整路径,注意不要包含中文SaveFile_Path = r'/home/data/CompanyName/' #拼接后要保存的文件路径SaveFile_Name = r'all.csv' #合并...原创 2018-04-27 16:11:04 · 1352 阅读 · 0 评论 -
读取父目录下的子目录下的文件
# os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表 files = os.listdir(path) for file in files: # os.path.join() 将多个路径组合后返回 paths = os.path.join(path, file) chilfiles = os.list...原创 2018-04-26 09:35:59 · 607 阅读 · 0 评论 -
修改目录下的文件名
import ospath = ""# print(os.listdir(path))filenames = os.listdir(path)print(filenames)for filename in filenames: m = filename.replace('\\', '') print(m) os.rename(path+filename, p...原创 2018-04-25 21:45:13 · 385 阅读 · 0 评论 -
学习python的数据处理
import pandas as pdtest_df = pd.read_csv("/Users/isabella/Downloads/test.csv")train_df = pd.read_csv("/Users/isabella/Downloads/train.csv")# 查看每一列的数据train_df.info()# 查看数据的统计特性train_df.describe...原创 2018-02-07 10:44:27 · 673 阅读 · 0 评论 -
恶意代码的分类
首先,从权限文本中提取出特征。f = glob.iglob(r'C:/project/ML/train_ben/*/AndroidManifest.xml')i = 0for xml in f: tree = ET.parse(xml) root = tree.getroot() #子文件依次提取特征 #用t传递子特征 t = [] f原创 2018-01-19 20:34:00 · 4870 阅读 · 2 评论 -
装箱问题
a = [0,0,0,0,0,0]#如果放入n个3x3的,剩余空间可以放入2x2的数量value2 = [0,5,3,1]sum = 0result = []b2 = [0,5,3,1]#读取文件file = open('C:/project/a.txt')while 1: line = file.readline() a = [int(r) for r原创 2018-01-19 20:23:58 · 233 阅读 · 0 评论