
python编程
想念@思恋
这个作者很懒,什么都没留下…
展开
-
【面试宝典】57道Python语言基础高频题库整理(附答案背诵版)
在Python中,lambda函数是一种简短的、匿名的函数,它使用lambda关键字定义。它允许您快速定义单行函数,并在需要函数的地方使用它。简洁性:lambda函数允许您在单行内定义简单的函数,这使得代码更加简洁。相比之下,使用def关键字定义的函数通常需要更多的行数来定义和实现相同的功能。匿名性:由于lambda函数没有名称,因此它们可以在需要一次性使用的函数的地方使用。这使得代码更加简洁,并减少了命名函数的开销。作为回调函数。原创 2024-07-09 22:52:50 · 6527 阅读 · 0 评论 -
【面试宝典】32道Python面向对象高频题库整理(附答案背诵版)
Python中的元类(metaclass)是一个高级编程概念,用于创建或修改类。在大多数编程语言中,类是用于创建对象的蓝图或模板。但在Python中,类本身也是对象,元类则是用于创建这些类对象的类。换句话说,元类是类的类。控制类的创建过程:你可以在类被创建时自动添加属性或方法,或者修改已有的属性或方法。实现更高级别的抽象:例如,你可以使用元类来自动注册所有的子类到一个中心位置,这在实现插件系统或框架时非常有用。Python中所有的类都是type的实例。原创 2024-07-04 22:57:04 · 6273 阅读 · 0 评论 -
【面试宝典】23道数据爬虫高频题库整理(附答案背诵版)
此外,随着技术的不断发展,网站可能会采用更先进的反爬虫技术,因此爬虫开发者需要持续关注和学习新的技术和方法来应对这些挑战。爬虫负责解析响应,提取出数据和新的请求(即需要跟进的URL)。总的来说,Scrapy是一个功能强大、灵活易用的网络爬虫框架,它能够帮助开发者高效地抓取网站数据,并提供了丰富的定制和扩展接口,使得开发者能够根据自己的需求来定制爬虫。请注意,无论使用何种方法,都应尊重网站的robots.txt规则,并合理控制爬虫的访问频率,以避免对目标网站造成不必要的负担或触发更严格的反爬虫机制。原创 2024-07-03 23:14:25 · 7195 阅读 · 0 评论 -
【机器学习】pandas读取数据后,使用svm训练一个分类模型
本文展示如何使用 Pandas 读取数据并将其与 SVM 模型结合起来,从而训练一个分类模型原创 2024-04-24 23:03:36 · 308 阅读 · 0 评论 -
【机器学习】使用sklearn进行二分类快速实战
使用 scikit-learn(sklearn)库进行二分类任务的简单示例,这里使用的是一个经典的鸢尾花数据集(Iris dataset)原创 2024-04-24 22:40:35 · 337 阅读 · 0 评论 -
【xgboost】使用xgboost训练一个简单模型
使用pandas读取特征数据,并处理数据中的双引号,同时使用xgboost训练一版模型。原创 2024-04-19 23:00:45 · 404 阅读 · 0 评论 -
文本生成相关顶会、代码运行环境、注意事项
1、EMNLP-2019-**Text Summarization with Pretrained Encoders**原创 2022-06-13 18:03:05 · 532 阅读 · 1 评论 -
计算NYT数据中存在SEO情况的句子数
# /usr/bin/env python# coding=utf-8from collections import defaultdictimport jsonimport pandas as pddef is_soo(triple): if (triple[0] in triple[-1]) or (triple[-1] in triple[0]): return True else: return Falsedef overlapp.转载 2022-05-11 10:53:38 · 479 阅读 · 0 评论 -
在google-colab上成功配置pyrouge
参考链接https://www.jianshu.com/p/672c1d8658cehttps://blog.youkuaiyun.com/weixin_42018581/article/details/1026881811、# 查看perl版本!perl -v>>v5.26.12、# 安装XML-Parser!cd XML-Parser-2.44!sudo perl Makefile.PL!sudo make!sudo make test # Result为PASS意思是成功.原创 2022-05-03 16:25:27 · 695 阅读 · 1 评论 -
预处理CNN/DailyMail数据集
流程参考自https://github.com/nlpyang/PreSumm处理过程全部在Linux服务器实现。1、下载PreSumm代码git clone https://github.com/nlpyang/PreSumm.git需要安装两个包pyrouge=0.1.3pytorch-transformers=1.2.01、下载原数据集CNN/DailyMail:https://cs.nyu.edu/~kcho/DMQA/2、将下载好的数据集解压到放到一个文件夹中(row_.原创 2022-04-20 22:01:14 · 4410 阅读 · 5 评论 -
使用logging生成日志文件
# coding: utf-8# Name: logger2file# Author: tyler# Data: 2022/4/19import loggingdef init_logger(log_file=None, log_file_level=logging.NOTSET): log_format = logging.Formatter("[%(asctime)s %(levelname)s] %(message)s") # 设置输出格式原创 2022-04-19 15:31:24 · 602 阅读 · 0 评论 -
文本生成之Presum模型代码问题记录
1、清除字符串中的非字母和数字re.sub(r'[^a-zA-Z0-9 ]', '', s)2、将多个list合并为一个listsum(list, [])3、set.union(*map(set, candidates_1))set.union(A,B)返回两个集合的并集*map(set, candidates)将candidates中的每个值映射为set,并传递每个参数...原创 2022-04-18 11:33:32 · 821 阅读 · 4 评论 -
使用os.path.join函数遇到的问题
os.path.join函数的第二个参数开头不能是"/",否则路径无法正常添加。def check(output_txt='./data/pred/pred_output.txt'): cur_path = os.getcwd() print(cur_path) print(output_txt) pred_output_txt = os.path.join(cur_path, output_txt) print(pred_output_txt)check(.原创 2022-04-05 19:59:13 · 573 阅读 · 0 评论 -
en_core_web_sm
spaCy使用的语言模型是预先训练的统计模型,能够预测语言特征,对于英语,共有en_core_web_sm、en_core_web_md和en_core_web_lg三种语言模型,还有一种语言模型:en,需要以管理员权限运行以下命令来安装en模型:python -m spacy download en使用spacy.load()函数来加载语言模型spacy.load(name,disa...原创 2022-03-27 19:30:22 · 3219 阅读 · 0 评论 -
核对两个excel文件内容
任务名称:在A学院中存在一些信息错误,需要找出来。具体问题:查看A学院中填写的姓名、学号、证件号和正确汇总文件的姓名、学号、证件号是否相同。注意事项:根据名字来判断,因为证件号和学号可能有错误,此时有重名的问题!!!# coding: utf-8# Name: process# Author: tyler# Data: 2022/3/26import pandas as pdif __name__ == "__main__": file1 = "***学.原创 2022-03-26 16:26:34 · 585 阅读 · 0 评论 -
程序描述~
pos_mask_matrix = torch.clamp(pos_mask_matrix.float(), 0, 1) # 将tensor限制到0-1之间exp_u_pos = torch.exp(u_pos)delta_exp_u_pos = torch.mul(exp_u_pos, pos_mask_matrix)sum_delta_exp_u_pos = torch.stack([torch.sum(delta_exp_u_pos, 2)] * delta_exp_u_pos.shap.原创 2021-02-24 17:20:19 · 228 阅读 · 0 评论 -
力扣-142 环形链表Ⅱ
题目:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回null。思路:(1)假设链表有a+b个结点(从head到链表环入口共a个结点,链表环共b个结点);(2)设快、慢指针分别走了f、s步,那么会有以下两个结论:f=2*sf=s+n*>b<----快指针多走了n个环的长度;(3)由(2)可得,s=n*b;(4)再假设,我们从head指针开始,一直走到环的入口,共走了k步,那么k=a+n*b,此时由于慢指针slow已经走了n*b步(s=.原创 2022-02-28 19:55:00 · 268 阅读 · 0 评论 -
重新预训练BERT
在面试时经常有面试官问有没有做过Bert的预训练,今天特地记录一下。参考链接:https://blog.youkuaiyun.com/weixin_43476533/article/details/107512497https://blog.youkuaiyun.com/qq_22472047/article/details/115528031"""transformers:version-4.5.1个人感觉:数据预处理是比较麻烦的一个步骤,因为每个人的数据格式是不同的;而运行代码则大同小异。本次预训练仅使用了M.原创 2021-11-09 19:10:05 · 1942 阅读 · 4 评论 -
记录数据处理过程中使用到的正则表达式
记录数据处理过程中使用到的正则表达式1、匹配小括号,其中只包括数字\([0-9]+\)原创 2021-11-09 15:40:24 · 105 阅读 · 0 评论 -
力扣-1994 好子集的数目
解题思路参考链接https://leetcode-cn.com/problems/the-number-of-good-subsets/solution/py3-by-mao1112-sxmx/,我在此基础上添加了自己的理解。"""解题思路:找出所有数字的组合,【每种组合的次数=各数字次数的成绩】注意:限制数字<=30,考虑暴力解。"""import collectionsclass Solution: def numberOfGoodSubsets(self, nu.原创 2021-10-31 21:42:39 · 287 阅读 · 0 评论 -
使用git提交代码到github
提示:前序准备工作已经完成,参考https://blog.youkuaiyun.com/yanhanhui1/article/details/82819665使用git上传文件/文件夹:进入本地文件夹cd data初始化git init将文件添加到本地仓库git add . #添加当前文件夹下的所有文件git add x.py#添加当前文件夹下的x.py文件—>git add .出错,可能是其他文件夹里也有.git文件,将其删除,只保留初始的那个输入本次的提交说明git .原创 2021-10-26 12:41:24 · 130 阅读 · 0 评论 -
力扣-前缀和的应用和优化
力扣-560. 和为 K 的子数组参考自:https://leetcode-cn.com/problems/subarray-sum-equals-k/solution/he-wei-kde-zi-shu-zu-by-leetcode-solution/class Solution1: def subarraySum(self, nums, k): res = 0 n = len(nums) # 暴力解-相当于三重循环 for .原创 2021-10-25 10:58:27 · 114 阅读 · 0 评论 -
笔试题-根据词典中的词语,对文本进行分词
def get_res(lexicon, data): ''' 第一行是一个字符串数组,表示一组词库 第二行是一个文本,表示要检查的文本内容 想法:想划分最长的词语 问题:有一些情况无法被考虑到 ''' # 80 % lexicon = sorted(lexicon, key=lambda x :len(x), reverse=False) # print(lexicon) cur_data = data[:] for原创 2021-10-23 18:01:14 · 230 阅读 · 0 评论 -
常见的激活函数及其优缺点
记录一下四种常见的激活函数图片均来自百度图片搜索借鉴以下文章https://www.zhihu.com/people/long-xiang-tian-yi/postshttps://blog.youkuaiyun.com/weixin_39910523/article/details/1115821591、Sigmoid(1)图像ps:图片居中,在链接后边加上#pic_center(2)公式σ(z)=11+e−z\sigma \left ( z \right ) = \frac{1}{1+e.原创 2021-10-19 20:20:26 · 627 阅读 · 0 评论 -
对三个数值进行排序
# coding: utf-8# Name: coding.py# Author: tyler# Data: 2021/10/16"""题目:已知一个list,只包含1,2,3,请你在不借用辅助数组的情况下,从大到小进行排序思路:借助---三指针。思考:具体解题思路,借鉴数学归纳法,假设前n-1个数已经排好序了,那么如何将最新的数进行插入就是最关键的步骤。"""class Solution(object): def get_res(self, nums原创 2021-10-16 19:24:12 · 474 阅读 · 0 评论 -
笔试题-删除链表中的倒数第k个节点
难点在于需要自己构建数据结构题目:1、输入节点总个数、需要删除的倒数第k个节点和链表节点2、当节点个数小于1时,返回"empty list!"如:输入为:521 2 3 4 5输出为:1 2 3 5class Node(object): def __init__(self, val): self.val = val self.next = Noneclass Solution(object): def remove_node(.原创 2021-10-12 17:26:55 · 137 阅读 · 0 评论 -
python中的classmethod()和staticmethod()
参考自菜鸟教程1、classmethod方法中的第一个参数是cls,它代表当前这个类。2、classmethod()和staticmethod()都可以实例化,也可以不实例化来使用。3、实例化方法必须定义一个实例才可以使用。4、classmethod()类方法不能调用实例化方法。class Test(object): def __init__(self, name): self.name = name @staticmethod def func1(.原创 2021-10-12 14:42:04 · 204 阅读 · 0 评论 -
力扣-10 正则表达式匹配
1、常规的二阶动态规划会利用的当前位置相邻的信息,如计算dp[i][j]时可能会用到dp[i][j-1]、dp[i-1][j]、dp[i-1][j-1]的值。而在本题中,额外用到了dp[i][j-2]的值。2、转载自力扣官方题解https://leetcode-cn.com/problems/regular-expression-matching/solution/zheng-ze-biao-da-shi-pi-pei-by-leetcode-solution/class Solution2: .转载 2021-10-09 13:53:22 · 215 阅读 · 0 评论 -
力扣-4 寻找两个正序数组的中位数
看到log的时间复杂度,会想起使用二分查找的方法,但是想不到题解给出的步骤,特此记录一下。解题的关键在于:1、将题目转换为求两个list中第k小的值;2、利用二分法,依次找到前k-1个小的值,并将这些值“删除”,那么新数组的第1个值,就是我们想要找的第k个值!class Solution: def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: # log时间复杂度.转载 2021-10-06 21:31:46 · 106 阅读 · 0 评论 -
力扣-97 交错字符串
1、一开始的想法是利用双指针,给s1和s2各分配一个头指针,每次遇到符合要求的,就将其向右移动,直到最后完成。但是最后发现问题在于:不方便判断s3的当前字符来自s1还是s2!'''https://leetcode-cn.com/problems/interleaving-string/'''class Solution1: def isInterleave(self, s1: str, s2: str, s3: str) -> bool: # 利用双指针,每次遇到.原创 2021-10-04 13:53:41 · 306 阅读 · 0 评论 -
七大经典排序算法-python实现总结
算法参考于菜鸟教程https://www.runoob.com/w3cnote/ten-sorting-algorithm.html'''1、冒泡排序'''def bubbleSort(arr): for i in range(1, len(arr)): for j in range(0, len(arr)-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1.转载 2021-09-30 17:48:23 · 117 阅读 · 0 评论 -
self-attention为什么要除以根号d_k
self-attention的公式为attention(Q,K,V)=Softmax(QKdk)Vattention(Q,K,V)=Softmax( \frac{QK}{\sqrt{d_{k}}})Vattention(Q,K,V)=Softmax(dkQK)V个人理解,除以dk\sqrt{d_{k}}dk的原因有两点:dkd_{k}dk是词向量/隐藏层的维度1、首先要除以一个数,防止输入softmax的值过大,导致偏导数趋近于0;2、选择根号d_k是因为可以使得q*k的结果满足.原创 2021-09-29 12:04:31 · 23800 阅读 · 5 评论 -
顺时针生成数组
给定一个n,生成一个数组,要求:1、中间位置为1,从1开始顺时针生成2,3,4.如下例所示:'''n=1时,生成[1]n=2时,生成[[1, 2], [4, 3]] n=3时,生成[[7, 8, 9], [6, 1, 2], [5, 4, 3]]n=4时,生成[[7, 8, 9, 10], [6, 1, 2, 11], [5, 4, 3, 12], [16, 15, 14, 13]]n=5时,生成[[21, 22, 23, 24, 25.原创 2021-09-28 15:58:09 · 219 阅读 · 0 评论 -
pytorch中矩阵的维度变化
1、view()函数,该函数可任意改变矩阵形状。要求数据必须时连续存储的,通常在此操作前一步使用contiguous()函数。contiguous()函数返回一个连续内存空间,与原张量数据相同。import torchtorch.manual_seed(1)a = torch.randn(3, 4)b = a.view(2, 6)c = a.contiguous().view(2,6)'''print(a)a[0][0] = 1.111print(a)print(b)prin.原创 2021-09-22 13:49:57 · 910 阅读 · 0 评论 -
python使用basename得到路径中最后的文件名
from os.path import basenamedatafile = "abc/123.dat"name = basename(datafile)print(name)'''123.dat'''原创 2021-09-22 11:39:31 · 672 阅读 · 0 评论 -
WarmupLinearSchedule为什么先升后降
#num_train_optimization_steps = int(len(train_data) / args.train_batch_size / args.gradient_accumulation_steps) * args.num_train_epochsclass WarmupLinearSchedule(_LRSchedule): """ Linearly increases learning rate from 0 to 1 over `warmup` fractio原创 2021-09-20 16:45:33 · 1388 阅读 · 0 评论 -
No such file or directory: ‘:/usr/local/cuda-10.1:/usr/local/cuda-10.1/bin/nvcc‘:
安装apex时,遇到下面的问题FileNotFoundError: [Errno 2] No such file or directory: ‘:/usr/local/cuda-10.1:/usr/local/cuda-10.1/bin/nvcc’: ‘:/usr/local/cuda-10.1:/usr/local/cuda-10.1/bin/nvcc’解决方案:# 命令行输入export CUDA_HOME=/usr/local/cuda-10.1分析原因按照给定的路径,打开相.原创 2021-09-16 10:05:12 · 8619 阅读 · 1 评论 -
python输出前n位有效数字
a = 12.235487946b = "{:.6}".format(a) # 前六位有效数字c = "{:.6f}".format(a) # 小数点后六位print(b)print(c)'''12.235512.235488'''原创 2021-09-15 20:58:17 · 3393 阅读 · 0 评论 -
实例:SGD在神经网络中的应用及其反向传播过程
利用神经网络模拟直线,并验证自己对反向传播的理解。具体推导见文章末尾。import torchimport torch.nn as nnimport torch.optim as optimimport mathimport randomimport numpy as npimport torch.nn.functional as F# 设置随机种子def setup_seed(seed): torch.manual_seed(seed) # 为cpu分配随机种子 .原创 2021-09-05 15:56:06 · 725 阅读 · 1 评论 -
记录numpy中的矩阵乘法及对应位相乘
import numpy as npa = [[0,0], [3,4]]b = [[1,2], [1,2]]a = np.array(a)b = np.array(b)# 矩阵乘法res1 = np.dot(a,b)res2 = np.matmul(a,b)print(res1)print(res2)# 对应位相乘res3 = np.multiply(a,b)res4 = a*bprint(res3)print(res4)...原创 2021-09-01 23:59:59 · 1367 阅读 · 0 评论