Python
python语言相关博客
白水baishui
天光乍破
展开
-
python实现将给定列表划分为元素和大致相等的两个子列表
假设现有列表`[300,150,75,38,19,9,5,2]`,我想把它划分为两个子列表,并要求两个列表的元素和大致相等,应该如何做?如果我仅仅只是想将一个列表前后切分成元素和大致相等的两个子列表,并且保持元素顺序不变化,应该怎么做呢?实际上只需要一些小小的改动就可以了。可以看到,子列表的顺序和在原列表中是一样的。在写这篇博客之前,我已经浏览了。原创 2023-04-18 17:11:48 · 1165 阅读 · 3 评论 -
Pytorch 2.0来了!来看看新特性怎么应用到自己的代码里
Pytorch2.0和GPT4、文心一言同一时间段发布,可谓是热闹至极,我看了看Pytorch 2.0的文档,一句话概括下,2.0的功能介绍,核心就是加入这行代码就能优化你的模型,优化后的模型和往常使用方式一样,推理速度会提升,比较重要的一点是,可以用于训练或者部署,训练可以传梯度,这次是带有AOTautograd的。然而需要注意的是,这行代码(编译)本身会消耗不少时间。Pytorch官方在A100上测试了三个模型仓库的模型,加速比如下:看起来很不错。那废话不多说,来看看怎么用。原创 2023-03-17 13:27:02 · 2489 阅读 · 3 评论 -
利用Flask框架将你的python脚本变成服务
之后运行该Flaks应用。写好代码后,假设文件名为。原创 2023-02-23 17:35:14 · 735 阅读 · 0 评论 -
如何用Python读取Amazon的Review数据
Amazon(http://jmcauley.ucsd.edu/data/amazon/)(https://nijianmo.github.io/amazon/index.html)数据集包含来自亚马逊的产品评论和元数据,其中包括1996年5月至2014年7月的1.428亿条评论。如果我们需要用到Amazon的评论数据,那就要先下载好数据集。原创 2023-02-08 15:30:37 · 2192 阅读 · 1 评论 -
Python 将关系对数据转换为图数据 / 邻接矩阵
在深度学习任务,例如推荐系统中,将关系转换为图表示,即邻接矩阵是常用的操作。通常的做法是先将关系对数据转换为图数据,然后生成该图的邻接矩阵,再存储为稀疏矩阵。但这种方法不适用于大型矩阵的操作,通常会报内存溢出的错误。以推荐系统的Amazon的评级数据为例(Movielens等同理),这里提供一种方法将图数据直接存储为稀疏矩阵。原创 2023-01-09 18:22:40 · 3132 阅读 · 0 评论 -
如何把Netflix数据集转换成Movielens格式?
点击“Download”,下载文件archive.zip并解压。5、将物品(电影)id加入dataframe。6、保存dataframe。原创 2022-07-25 16:42:07 · 724 阅读 · 0 评论 -
Python常用的设计模式
抽象工厂模式和建造者模式相比于简单工厂模式和工厂方法模式而言更加灵活也更加复杂。通常情况下,软件设计以简单工厂模式或工厂方法模式开始,当发现设计需要更大的灵活性的时候,则向更加复杂的设计模式演化。............原创 2022-07-22 17:55:00 · 3762 阅读 · 0 评论 -
推荐算法的Python实现——MF(矩阵分解) 基于TensorFlow
本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练MF推荐模型。第一列是用户id(user_id)、第二列是物品id(item_id)、第三列是用户对物品的评分(score)、第四列是时间戳(timestamp)。在Movielens-1m数据集中,注意ratings.dat是用作为分隔符的。。对用户1(user_id=1)产生一次推荐的输出结果(示例):.........原创 2022-06-17 15:46:51 · 1197 阅读 · 0 评论 -
pandas 将字符串映射为数字的方法
在有些数据集中,有些数据变量用字符串表示,但为了方便处理,往往想转换为好处理的格式,这时候不一定要用one hot进行编码,也可以直接转成整数:test_df["xx"] = pd.factorize(test_df["xx"])[0].astype(int)效果gift_cards["user_id"] = pd.factorize(gift_cards["user_id"])[0].astype(int): user_id item_id ratings原创 2022-03-27 21:57:04 · 6997 阅读 · 0 评论 -
推荐系统 MostPopular 算法的 Python 实现
MostPopular 算法的 是指对每个用户都选择出当前流行度最高的Top-K个物品进行推荐,在推荐的时候,需要去除用户原先就浏览过的项目。算法代码如下:# Most Popdef MostPopular(pop_dict, I, K): ''' pop_dic:流行度字典,存储了每个item:pop_value的键值对。 I:用户可以选择的Item空间(需去除已经看过的item) K:Top-K 值,推荐出K个item给用户 '''原创 2022-03-24 14:08:16 · 1612 阅读 · 0 评论 -
python 或 conda 安装 pyterrier
不要直接用pip install pyterrier要pip install python-terrierconda同理原创 2021-12-26 20:07:08 · 680 阅读 · 0 评论 -
留一法交叉验证 Leave-One-Out Cross Validation
交叉验证法,就是把一个大的数据集分为 kkk 个小数据集,其中 k−1k-1k−1 个作为训练集,剩下的 111 个作为测试集,在训练和测试的时候依次选择训练集和它对应的测试集。这种方法也被叫做 kkk 折交叉验证法(k-fold cross validation)。最终的结果是这 k 次验证的均值。此外,还有一种交叉验证方法就是 留一法(Leave-One-Out,简称LOO),顾名思义,就是使 kkk 等于数据集中数据的个数,每次只使用一个作为测试集,剩下的全部作为训练集,这种方法得出的结果与训练整个原创 2021-12-20 23:52:03 · 19785 阅读 · 3 评论 -
python将矩阵存为lmdb文件
由于工作需要,将C++生成的矩阵存入LMDB再用caffe进行处理,输出的矩阵失去了它原本的shape,因此只能记录下来:矩阵X(n*ell):-3723024071319544887-223830618-184109131-328009648-182855917…749988319-1387505086-1967883425102294930916806381161541327498矩阵Y(r*n):100011-34-280109151-205-原创 2021-09-26 18:12:21 · 622 阅读 · 0 评论 -
使用paddlepaddle做OCR识别
1. 环境配置Python: 使用paddlepaddle需要3.6以上的Python版本依赖库:pandas,pip install pandas;cv2,pip install opencv-python;paddlepaddleCPU 版本:pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple;GPU 版本,支持CUDA 10.1:python -m pip install paddlepaddle-gpu==原创 2021-08-25 11:06:11 · 10392 阅读 · 6 评论 -
推荐算法的Python实现——MF(矩阵分解)
1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练ItemCF推荐模型。第一列是用户id(user_id)、第二列是物品id(item_id)、第三列是用户对物品的评分(score)、第四列是时间戳(timestamp)。在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想改ratings.dat文原创 2021-08-20 00:22:12 · 3791 阅读 · 15 评论 -
推荐算法的Python实现——ItemCF(基于物品的协同过滤)
1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练UserCF推荐模型。第一列是用户id(user_id)、第二列是物品id(item_id)、第三列是用户对物品的评分(score)、第四列是时间戳(timestamp)。在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想该,改代码也可以,主要替换原创 2021-08-19 08:16:59 · 4628 阅读 · 4 评论 -
推荐算法的Python实现——UserCF(基于用户的协同过滤)
1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练UserCF推荐模型在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想该,改代码也可以,主要替换以下两行:userid, itemid, record, _ = line.split(",")# 替换为userid, itemid, reco原创 2021-08-18 22:29:18 · 5858 阅读 · 2 评论 -
推荐系统测评指标——计算DCG、IDCG以及nDCG的python代码
1. 公式DCG:DCG@K=∑i=1K2ri−1log2(i+1)DCG@K=\sum_{i=1}^{K}\frac{2^{r_i}-1}{log_2(i+1)}DCG@K=i=1∑Klog2(i+1)2ri−1其中,KKK是推荐列表的大小;iii 是指推荐列表中的第iii个推荐项;rir_iri是指推荐项 iii 是否被用户点击,若点击则为111,否则为000,在实际测试中,我们通常吧推荐列表中在测试集的推荐项视为被用户点击的推荐项,不在测试集中的推荐项视为未被用户点击的推荐项;IDC原创 2021-08-17 17:46:31 · 7755 阅读 · 2 评论 -
自定义CNN实现图像分类
我想针对一个医学影像数据集训练一个CNN模型,网络结构如下:层描述Conv-1Kernel:5*5, stride 1, output channels:6 , padding=SAME, Activation=ReLU(输入图片大小和输入通道数见所采用的数据集)MaxpoolPoolsize: 2*2,stride: 2Conv-2Kernel:5*5, stride:1, input channels: 6, output channels: 16, paddi原创 2021-07-03 13:31:29 · 1593 阅读 · 2 评论 -
Anaconda找回默认源
Anaconda的默认源:https://repo.anaconda.com/pkgs/mainhttps://repo.anaconda.com/pkgs/rhttps://repo.anaconda.com/pkgs/msys2用法:conda config --add channels https://repo.anaconda.com/pkgs/mainconda config --add channels https://repo.anaconda.com/pkgs/rconda原创 2021-03-29 19:39:53 · 10008 阅读 · 27 评论 -
用Python代码自动生成文献的IEEE引用格式
今天尝试着将引用文献的格式按照IEEE的标准重新排版,感觉手动一条一条改太麻烦,而且很容易出错,所以尝试着用Python写了一个小程序用于根据BibTeX引用格式来生成IEEE引用格式。先看代码,如下:import redef getIeeeJournalFormat(bibInfo): """ 生成期刊文献的IEEE引用格式:{作者}, "{文章标题}," {期刊名称}, vol. {卷数}, no. {编号}, pp. {页码}, {年份}. :return: {auth原创 2021-02-24 16:40:50 · 4841 阅读 · 9 评论 -
从细节过渡到实例 一天学会Pytorch
文章目录1. 初识PyTorch1.1. 张量1.2 Numpy操作2 自动微分2.1 张量的自动微分2.2 梯度3 神经网络3.1 定义网络3.2 损失函数3.3 更新权重4 训练一个分类器4.1 读取CIFAR10数据,做标准化4.2 建立网络4.3 定义损失函数和优化器4.4 训练网络4.5 使用模型预测4.6 存取模型1. 初识PyTorch1.1. 张量(1)导入pytorch包import torch(2)创建一个5x3的空张量tensor = torch.empty(5, 3)原创 2020-12-28 23:31:37 · 2756 阅读 · 7 评论 -
用Python模拟一个区域广播通信网络 2020年4月认证杯数学建模比赛代码
2020 年“认证杯”数学中国数学建模网络挑战赛第一阶段B题博主参加了2020 年“认证杯”数学中国数学建模网络挑战赛,选择了这个题目,获得了第一阶段的二等奖,不想参加第二阶段了,代码放在这里,有需要的就参考一下吧。题干:考虑这样的一个无线网:每个通信节点都是低功率的发射器,并且在进行着空间上的低速连续运动 (无法预知运动方向及其改变的规律),所以对一个节点而言,只有和它距离在一定范围之内的节点才能收到它的信号,而且节点会 (在未声明的情况下) 相互接近或远离。每个节点需要不定期地、断续地发送信息.原创 2020-05-13 16:59:28 · 2791 阅读 · 12 评论 -
Windows定时任务 每隔一段时间(最小到秒级)执行一次指定的Python脚本
首先是创建一个Windows定时任务,并且设置它每天执行一次指定的Python脚本参考以下两篇博客进行:Window系统创建定时任务 定时执行任务Windows定时任务 执行python脚本文件 *.py关于创建Windows定时任务执行python脚本,上面两篇博客的作者已经写得非常清楚了,但是我的需求是让该定时任务每隔5分钟执行一次,于是我在上面两篇博客的基础上进行了如下设置:1、首...原创 2020-02-20 00:19:26 · 26568 阅读 · 17 评论 -
Python for循环生成列表
一般Python for语句前不加语句,但我在机器学习实战中看到了这两条语句:featList = [example[i] for example in dataSet]classList = [example[-1] for example in dataSet]多方研究和询问,得到如下解释:语句featList = [example[i] for example in ...原创 2018-02-09 18:23:04 · 45029 阅读 · 3 评论 -
决策树中的香农熵(Shannon Entropy)
香农熵又称信息熵,反映了一条信息的信息量大小和它的不确定性之间的关系,是信息量的度量,单位为 bit。对于某件事情 不确定性越大,熵越大,确定该事所需的信息量也越大; 不确定性越小,熵越小,确定该事所需的信息量也越小。假设有一事件X" role="presentation" style="position: relative;">XXX,X" role="presentation" s原创 2018-02-03 15:53:00 · 6865 阅读 · 0 评论 -
可视化库Matplotlib-柱形图与盒图
导入numpy库、pandas库和Matplotlib库import pandas as pdimport numpyimport matplotlib.pyplot as plt导入文件reviews = pd.read_csv("fandango_score_comparison.csv")柱形图 生成一个柱形图:#bist图(柱形图)fig, ax ...原创 2018-01-09 12:28:12 · 2879 阅读 · 0 评论 -
用Python来玩微信小游戏跳一跳
源码 Python源码下载工具介绍 - Python或Anaconda - 手机或模拟器,用于运行游戏 - ADB 驱动,下载地址 - 相关依赖,例如PIL库实现原理: 精确测量出起始和目标点之间测距离,估计按压的时间来精确跳跃。思路:核心:每次落稳之后截图,根据截图算出棋子的坐标和下一个块顶面的中点坐标,根据两个点的距离乘以一个时间系数获得长按的时间识别棋子:靠棋子的颜色来原创 2018-01-01 22:58:17 · 2912 阅读 · 0 评论 -
算法:编程在一个已知的字符串中查找最长单词,假定字符串中只包含字母和空格,空格用来分隔不同单词
程序分析: 可以定义两个字符串,一个用来存放字符串,一个用来存储最长的单词。通过比较得到最长的单词,再通过元素下标来获取最长的单词。#include "stdio.h"#include "string.h"int main(void){ //定义两个数组,sentence储存字符串,word存储单词 char sentence[1024] = {}, word[64]原创 2017-11-25 16:39:41 · 5931 阅读 · 1 评论 -
可视化库Matplotlib-折线统计图
首先导入pandas库和matplotlib库import pandas as pdimport matplotlib.pyplot as plt以一个csv文件来演示用Matplotlib制作折线统计图:UNRATE.csv导入csv文件unrate = pd.read_csv("UNRATE.csv")把参数‘DATE’转化为标准时间格式unrate['D...原创 2017-11-18 12:14:32 · 1952 阅读 · 2 评论 -
用Python写一个网络爬虫爬取网页中的图片
写一个爬虫爬取百度贴吧中一个帖子图片 网址:壁纸用谷歌浏览器的开发工具检查网页,可以发现其每一张图片都有如下格式<img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=f35ae94ffafaaf5184e381b7bc5594ed/c18987d6277f9e2f3a495c611830e924b899f359原创 2017-10-28 16:55:46 · 9074 阅读 · 1 评论 -
用matplotlib画线
就拿sin、cossin、cos\sin 、\cos来举例吧。python代码:import matplotlib.pyplot as pltimport numpyimport math#创建x数组,区间是[0,4π],步长为0.1x = numpy.arange(0, 4 * math.pi, 0.1)def sinFunction(x): sin = [ma...原创 2018-03-31 08:58:22 · 7250 阅读 · 0 评论 -
'str' object has no attribute 'get' 错误解决方案
我在使用python写爬虫时用到了requests.get()方法:def openUrl(url, ip, agent): #函数形参为url:网页地址; ip:ip池; agent:User-Agent, 三者均为字符串类型 requests.get(url, headers=agent, proxies=ip)疑惑的是,使用时报了 ‘str’ object has...原创 2018-04-08 09:12:34 · 120014 阅读 · 1 评论 -
UserAgent大全
UserAgent查询网站:UserAgentString User Agent String explained下的内容即是当前正在使用的浏览器的UserAgent.UserAgent大全:ListOfUserAgentStrings BROWSERS一栏中即是浏览器名称,点进去就可以看到该浏览器不同版本的UserAgent....原创 2018-04-10 22:44:53 · 3175 阅读 · 0 评论 -
Python实现自动访问网页
import urllib.requestimport requestsimport timeimport sslimport randomdef openUrl(ip, agent): headers = {'User-Agent': agent} proxies = {'http' : ip} requests.get("https://www.baidu....原创 2018-04-13 16:42:26 · 12247 阅读 · 1 评论 -
对 matplotlib.cm.RdYlBu() 的理解
matplotlib.cm是matplotlib库中内置的色彩映射函数。matplotlib.cm.[色彩]('[数据集]')即对[数据集]应用[色彩]内置色彩映射的列表:Colormap参考 有关色彩映射的使用方法,在此举一个例子:#实例来源:TensorFlow深度学习应用实践 Page 56from pylab import *import pand...原创 2018-08-05 13:50:59 · 24391 阅读 · 1 评论 -
BP神经网络(Back Propagation Neural Network)算法原理推导与Python实现详解
该神经网络被设置为三层:一层输入层、一层隐藏层、一层输出层样本集: 特征一 特征二 标签 0 0 0 0 1 1 1 0 1 1 1 0可以看出,这就是一个异或样本集,使用这个样本集可以展现出神经网络与感知机在处理非线性可分问题上的差别。import mathimport random# ...原创 2018-08-15 23:51:35 · 3816 阅读 · 6 评论 -
python + 数学公式 + 图像 表白 LOVE YOU❤
先来看看效果: 心动了木有?!!充满了程序员的浪漫木有?!! 来,放公式和代码: 数学公式:L:y=1xy=1xy = \frac{1}{x} O:x2+y2=9x2+y2=9x^2 + y^2 = 9 E:|−2x||−2x||-2x| V:x=−3|siny|x=−3|siny|x=-3|\sin y| Y:ln|x|ln|x|\ln |x| U:y=2x2y=2x...原创 2018-08-17 10:21:54 · 24248 阅读 · 10 评论 -
使用matplotlib库画线段
import matplotlib.pyplot as plt# 线段中两点的坐标如示例中# x=[[1,1],...] y=[[3.5,0],...]# 即标了点(1,3,5)与点(1,0),之后使用plot()函数连接两点x = [[1, 1], [2, 2],[3, 3], [4, 4]]y = [[3.5, 0], [0.5, 1],[2.5, 0], [0, 15.5]]...原创 2019-04-22 13:11:54 · 13720 阅读 · 1 评论 -
决策树中熵、条件熵、信息增益及信息增益比的python实现
有关熵、条件熵、信息增益及信息增益比的概念可以在网上搜索或者在博客:决策树 Decision Tree上查看假设我们有一份CSV文件(以部分为例):car.csv其中我们把"是否续保"列视为标签,其余列视为特征计算其熵、条件熵、信息增益及信息增益比:import numpy as npimport pandas as pdimport mathclass InformationGai...原创 2019-04-21 09:05:06 · 2637 阅读 · 1 评论