Python基础和操作
Python使用过程中的各种记录
Weiyaner
希望在搜索,推荐,NLP领域持续学习,持续产出。
《鸡声茅店月,人迹板桥霜》
展开
-
python 通过dict(zip)和{}的方式构造字典
经过测试,字典占用空间和键值对的个数并不是线性的。如果在很大的数据中,就需要考虑占用空间的大小,比如。10000个键值对,占用了7w字节。(应用在离线保存embeddings中)的一一映射关系,将aid作为key,第二列作为value。这样通过建立新的key,list作为value存储。在python中,通常通过。...原创 2022-07-18 17:10:59 · 3171 阅读 · 0 评论 -
python生成矩阵为何[[0 for i in range(n)] for j in range(m)]而不能[[0]*n]*m
python生成矩阵,使用[[0]*n]*m,我们会发现,当改变其中某一个元素时,整列数据都会发生改变,而使用[[0 for i in range(n)] for j in range(m)]才可以生成正常的矩阵。这是因为,list是可变元素,而int是不可变元素,对于list存储采用指针,引用型变量,改变矩阵其中某一个元素值,导致所有行的这个位置的元素都会改变。下面具体分析:Python列表和C语言数组不同,并不是存的实在的值,而是存放的只想其他实例的指针。所以也就能够理解 为什么python列表里里面什原创 2022-07-12 23:07:57 · 5598 阅读 · 0 评论 -
python的深拷贝和浅拷贝
1 可变对象和不可变对象在python 中,按照对象的更新方式,可以分为可变对象和不可变对象。可变对象就是指其对象的值可以改变,但是地址不变。不可变就是对象的值和地址均不可改变可变对象:列表list,字典dic,集合set不可变对象:字符串str, 数字num,元组tuple。var1="python" #字符串类型是不可变的,只能进行重新命名print(id(var1))var1="java"print(id(var1))a=[3,4] #list是可变的,所以改变后的地址原创 2022-02-07 15:42:05 · 976 阅读 · 0 评论 -
python 字符串相关函数总结(持续更新)
1 移除字符串中的空格1.1移除字符串全部空格1、replace()a = ' ab c d 'a.replace(' ','') 'abcd'2、join+split()a1 = a.split(' ') # a1是list结构> ['', 'ab', 'c', 'd', '', '']''.join(a1)>'abcd'1.2 移除开头/结尾空格结尾空格print(a.strip()) # 移除开头和结尾空格print(a.lstrip()) #原创 2022-01-21 11:13:17 · 413 阅读 · 0 评论 -
python 按照时间段生成时间列表
import pandas as pddef get_date_list(begin_date,end_date,freq): date_list = [x.strftime('%Y-%m') for x in list(pd.date_range(start=begin_date, end=end_date,freq = freq))] return date_listget_date_list('2021','2022','m')['2021-01', '2021-02',原创 2021-12-01 15:28:39 · 1545 阅读 · 0 评论 -
Dataframe 常用操作手册
官方文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dtypes.html1 df的构造pandas有两种重要的数据结构,分别是Series和DataframeSeries: 类似一个一维数组,一个Series对应DataFrame的一列DataFrame:类似一个二维数组,一个DataFrame由几个Series列构成。1.1 读取excel.csv# 读取excel,csv文件原创 2021-11-29 10:20:05 · 2271 阅读 · 0 评论 -
python dataframe列计算众数、中位数、平均值、极值、标准差等统计量
b = pd.DataFrame({'a':[1,3,3,4],'b':[2,2,2,2]})a = pd.DataFrame()# 分别计算均值,标准差、众数、最值、中位数a['mean']=[b['a'].mean() for i in range(len(b)) ] a['std']=[round(b['a'].std(),2) for i in range(len(b)) ] a['mode'] =[b['a'].mode()[0] for i in range(len(b))]a['原创 2021-07-13 14:18:19 · 11558 阅读 · 0 评论 -
python 连接mysql(增删改查)
文章目录导入包pymysql连接数据库创建表表中插入数据查询表中数据并返回打印更新表中数据删除表中数据删除表导入包pymysqlimport pymysql连接数据库dbhost = 'localhost'dbuser = 'root'dbpass = '123456'dbname = 'dbtest'try: db = pymysql.connect(host=dbhost,user=dbuser,passwd=dbpass,database=dbname) print(原创 2021-07-11 18:52:47 · 368 阅读 · 1 评论 -
python loc和iloc的区别
在dataframe数据中,通过列名可以获取该列数据,例如df[‘a’]。通过loc和iloc可以定位到行,然后获取行的数据。 两者区别在于:定位依据说明locindex必须根据index来匹配,没有该索引就无法提取数据iloc行号从0开始,逐个+1生成dataframe数据import pandas as pdimport numpy as npdf = pd.DataFrame({'a':np.zeros(5),'b':[i for i i原创 2021-07-10 20:05:15 · 511 阅读 · 0 评论 -
python dataframe的groupby
dataframe 的 groupby提供了分组,切片,切块的操作,根据一列或者多列进行拆分数据。对于分组后的数据可以计数,平均值,众数等等。同样通过各种函数还可以进行透视表,交叉表,分位表等等分组的分析groupby函数:用法: data.groupby(df[‘key’])返回值: dataframe重构数据,且key会变成新的索引,可以dic(list())转为字典通过key查看。测试案例生成dataframe数据import pandas as pdimport numpy as原创 2021-07-10 11:12:13 · 13154 阅读 · 0 评论 -
python lambda的使用
lambda函数是一个匿名函数,只能有一个表达式,不需要return,表达式的计算值就是函数的返回值,所以更加简洁。f = lambda x : x*x9等价于def g(x): return x*xg(3)9lambda函数经常搭配map函数使用,map(函数,数据),就是对每一个数都调用一次函数,实现了for。需要注意的是,在py3里面,map返回值不是list,需要转为list才可以输出。list(map(f,[1,2,3]))[1, 4, 9]...原创 2021-07-10 08:21:51 · 105 阅读 · 0 评论 -
python Dataframe 条件排序
创建Dataframe数据a = [1,2,3,4,5,2,1,2]b = [9,4,2,1,2,3,6,8]ddff = pd.DataFrame({'a':a,'b':b})单条件排序按照a列排序,a相同时,按照初始索引进行排序ddff.sort_values(by='a',ascending=True)多条件排序按照a,b的先后顺序进行排序,其中a升序,b降序的方式。ddff.sort_values(by=['a','b'] ,ascending=[True,False])原创 2021-07-05 15:38:48 · 1652 阅读 · 0 评论 -
python 导入自定义包
路径设置对于以下的自定义包的导入,首先需要加入该包的位置到python的环境变量里面。通过sys:import syssys.path.append('D:\Codes\Pycharm\core-algorithm-master')from algorithms.ch02sort.base.template import SortTemplate...原创 2021-07-04 21:42:58 · 1703 阅读 · 0 评论 -
python字典操作总结
文章目录创建一个字典获取字典的key和value通过zip连接list为字典tuple转字典字典基本操作通过key访问value增加key-value对删除key-value对字典方法总结key必须可哈希创建一个字典# 空字典dic = dict(){}dic = {'name':'weiyan','age':18,'hometown':'Xinyang','School':'BIT','Birthday':'1998-07-05','tall':175}获取字典的key和valuedi原创 2021-07-02 16:01:36 · 526 阅读 · 0 评论 -
python 多个dataframe写到同一个excel的不同sheet中
现在我们有多个dataframe数据(df1,df2),想要导出到同一个excel里面,可以这样操作import pandas as pddf2excel = pd.ExcelWriter(r'filename.xlsx',engine='xlsxwriter')#将dataframe写入Excel中的不同表名df1.to_excel(df2excel,index=False,sheet_name='sheet1') # False是指不带索引的写入到exceldf2.to_excel(df2e原创 2021-07-01 16:13:12 · 1449 阅读 · 2 评论 -
python 读取各种文件类型数据
1 读取Excel通过pandas包来读取data = pd.read_excel('data.xlsx', sheet_name="Sheet1", header = 1) # header是第几行数据作为列名更多参数说明见这里2 读取txt文件原创 2021-06-29 18:28:22 · 1242 阅读 · 0 评论 -
python dataframe与list,series,array,字典类型的相互转换
文章目录创建数据dataframe ---- listdataframe 转 listlist 转 dataframeDataframe ---- Seriesdataframe 转 seriesseries 转 dataframedataframe ---- arraydataframe转arrayarray 转 dataframedataframe ---- 字典dicdataframe 转 字典字典转dataframe创建数据import numpy as npimport pandas as原创 2021-06-28 15:33:16 · 2287 阅读 · 0 评论 -
重复行检测,并返回重复行索引
问题描述有类似以下的数据(已做马赛克处理),我想找到相同数据的位置,并按照重复的顺序返回索引和user_id。导入函数库import matplotlib.pyplot as pltimport pandas as pdimport seaborn as snsfrom collections import Counter读取数据data = pd.read_excel('data_city.xlsx')data.head() user原创 2021-06-28 11:24:28 · 519 阅读 · 1 评论 -
python excel文件转json文件
代码:import jsonimport xlrddef excel_to_json(excel_file,json_file): x1 = xlrd.open_workbook(excel_file) s1 = x1.sheet_by_name("Sheet1") rows = s1.nrows cols = s1.ncols with open(json_file, mode='w',encoding='utf-8') as jf: for原创 2021-06-24 17:04:23 · 164 阅读 · 0 评论 -
anaconda安装tenforflow-gpu(以我的mx250显卡为例)
今天手贱,在anaconda navigator里面,看到了有重复的TF2.1文件夹,我以为是以前自己命名重复了好几个tensorflow环境,就手贱的点了remove,万万没想到,一个remove让所有的TF2.1都没了,我以前辛辛苦苦安装的tensorflow-gpu版本也一并消失。所以写一个帖子记录下再次安装成功的过程,防止下次手贱。1 下载anaconda官网:点击这里已安装的请忽略即可2 查看tf,cuda,cudnn的配套版本号三者的版本号有特定要求:查看以下网址:https://w原创 2021-06-19 22:56:04 · 686 阅读 · 0 评论 -
Python时间戳运用
基于时间戳的相关运用1.获取当前时间获取当前的年月日时分秒以及星期,等等详细的时间数据import timeprint (time.strftime('%Y-%m-%d-%H:%M:%S-%A',time.localtime(t1)))参数含义%y 两位数的年份表示(00-99)%Y 四位数的年份表示(000-9999)%m 月份(01-12)%d 月内中的一天(0-31)%...原创 2019-06-20 10:30:29 · 339 阅读 · 0 评论 -
Python 函数篇(format、enumerate)
1. format函数1.1 通过关键字name = '张三'print('{Name}在{option}'.format(Name=name,option="写代码"))result:张三在写代码1.2 通过位置索引score = 99name = '张三'print('name={},score={}'.format(name, score))result:name=张三,score=991.3 属性设置^ < > d分别表示居中、左对齐、右对齐原创 2020-11-20 13:05:51 · 243 阅读 · 0 评论 -
Python 画图的使用技巧
1. 读取、保存图片img = plt.imread(img_path) #读取图像plt.imshow(cimg) #绘制图像plt.savefig(file_path+'/result/{}-{}/{}.jpg'.format(style_name, content_name, '内容图')) # 保存图像2原创 2020-12-07 19:59:01 · 266 阅读 · 0 评论 -
Python便捷使用(时间戳、GPU)
Python常用技巧1. Python篇时间戳的使用import timestart =time.clock()#中间写上代码块end = time.clock()print('Running time: %s Seconds'%(end-start))激活某一个GPU进行计算2.1 通过tensorflowimport tensorflow as tftf.device('/gpu:1')2.2 通过os启动import osos.environ('CUDA_VIS原创 2020-11-20 13:06:22 · 306 阅读 · 1 评论