
Python学习
在路上0616
不在互联网公司了,但是敲代码的技能还在!
展开
-
程序员面试浅谈
2022程序员面试总结原创 2022-12-31 21:39:29 · 248 阅读 · 1 评论 -
腾讯公开词向量数据集
Embedding Dataset -- NLP Center, Tencent AI Lab原创 2021-11-25 15:51:15 · 718 阅读 · 0 评论 -
InvalidArgumentError: assertion failed: [predictions must be >= 0]
tensorflow 莫名的报这个错误,后来发现定义特征的时候,特征值的值域不在定义的范围内。原创 2021-11-03 20:13:14 · 676 阅读 · 0 评论 -
pandas压缩数据,数据挖掘竞赛必备
场景:很多时候,我们需要读取多个文件数据,导致内存增大,甚至报错。解决方案,在我们读取之后,做一些数据类型的判断,选择合适的数据类型,减少内存占用:import pandas as pdimport numpy as np# 压缩内存函数,文件大小没变化,占用内存减小def reduce_mem_usage(df, verbose=False): start_memory = df.memory_usage().sum() / 1024 ** 2 numerics =原创 2021-10-13 20:16:21 · 1090 阅读 · 0 评论 -
pyhanlp 安装报错解决方案 for Mac
clang: warning: include path for libstdc++ headers not found; pass '-stdlib=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found] In file included from build/src/jp_thunk.cpp:1: In file included from build/src/...原创 2021-08-20 21:30:38 · 563 阅读 · 0 评论 -
pyspark 将数据转化为TFRecords格式数据
pyspark 将数据转化为TFRecords格式数据spark = SparkSession.builder.config("spark.jars","./spark-tensorflow-connector_2.11-1.15.0.jar").appName("generate active feature").getOrCreate()df = df.read.parquet('xxx.file')df.write.format("tfrecords").mode("overwrite")原创 2021-04-22 17:17:30 · 1522 阅读 · 0 评论 -
pyspark:通过sh脚本传参到python文件中
这个过程需要两个文件,其中一个是my.sh文件DT=$1……--driver-memory 6g \--executor-memory 6g \--executor-cores 2 \feat_2.py $DT另外一个是feat_2.pyif __name__ == "__main__": import sys dt = sys.argv[1] sd, ed = Util.raise_dt_str(dt, 20)运行的命令是sh my.sh原创 2020-05-24 09:46:29 · 998 阅读 · 0 评论 -
pyspark 字典嵌套
创建嵌套字典结构:('3', {'test': {'aaa': [[44, 5]]}}), ('2', {'test': {'bbb': [[2, 4], [3, 4]]}})# 存储这样的数据,schema怎么写def get_schema(): return StructType([ StructField('imei', StringType(), ...原创 2020-04-26 15:36:40 · 876 阅读 · 0 评论 -
python建立字典的嵌套——字典嵌套字典
需求是需要存储一个map结构的数据,map里面存储list类型的数据:from collection import defaultdictobj = defaultdict(lambda :defaultdict(list))如果想要遍历的话,data = {i: {j: k for j, k in v.items()} for i, v in event_map.items(...原创 2020-04-24 21:07:59 · 1510 阅读 · 0 评论 -
pandas筛选某列出现编码错误
df = df[df['cityname']==u'北京市']记得,如果用的python2,一定要导入import sysreload(sys)sys.setdefaultencoding('utf-8')或者在中文前面加入u'表示unicode编码的,因为pandas对象中中文字符为unicode类型的。...原创 2018-05-29 17:03:38 · 676 阅读 · 0 评论 -
pandas重新生成索引
在数据处理的过程中,出现了这样的问题,筛选某些数据,出现索引从600多开始,但是我希望这行数据下标从0开始。这个时候,我想到的是:df.reindex(range(length))但是查看一下数据之后,发现0-624之间的值全为Nan,显然不是我需要的数据。最后找到了说明:pandas调用reindex方法后净会根据新索引进行重排,如果某个索引值当前不存在,就会引入缺失值;...原创 2018-06-08 10:51:39 · 25188 阅读 · 6 评论 -
从POI点找到边界
工作中有这样的一个需求,通过历史订单的经纬度点,进行一个聚类,聚之后我们需要找到它的边界点存储。聚类的操作有基于Kmeans的和DBSCAN的密度聚类,只是这里需要注意,经纬度点的聚类需要用到距离的计算,不能简单的作为欧式距离或者曼哈顿距离。因为地球是一个球面,在根据经纬度点计算距离的时候,需要先把点投放到平面上,才能保证计算的距离是有意义的,因此,需要根据两个经纬度点计算距离的时候,如下的计...原创 2018-09-02 12:42:16 · 1564 阅读 · 0 评论 -
二维坐标排序
要求是:横坐标升序,如果横坐标相同,按照纵坐标降序排列。new_data = sorted(data,key=lambda x:(x[0],-x[1]))原创 2018-09-19 18:17:59 · 2540 阅读 · 0 评论 -
pandas数据判断是否为NaN值的方式
实际项目中有这样的需求,将某一列的值,映射成类别型的数据,这个时候,需要我们将范围等频切分,或者等距切分。具体的做法可以先看某一些特征的具体分布情况,然后我们选择合适的阈值进行分割。def age_map(x): if x < 26: return 0 elif x >=26 and x <= 35: return 1 ...原创 2018-09-26 08:49:29 · 81363 阅读 · 0 评论 -
json转成pandas的一些坑
在工作中,有一些数据的格式是json,但是在处理数据的时候,需要我们转成pandas格式的来做数据的处理。import pandas as pdimport jsonfrom pandas.io.json import json_normalizedata = '{"a":"value1","b":"value1"}'json.loads(data)>>> {...原创 2018-12-22 20:21:03 · 5655 阅读 · 0 评论 -
利用Pandas向csv文件追加
# -*- coding:utf-8 -*-import osimport timeimport pandas as pdfrom multiprocessing import Pooldef merge(filename): return pd.read_csv('./fun_data/'+filename)if __name__ == "__main__": ...原创 2019-01-03 09:31:55 · 10973 阅读 · 1 评论 -
python将大文件分割成小文件
import pandas as pdimport osdef read_josn(fn): df = pd.read_json(fn,lines=True) return df# 核心思想是根据index与大数进行除法运算分组def split_df_to_files(df): df['index'] = [x // 1000 for x in list(d...原创 2019-09-25 14:39:34 · 1291 阅读 · 0 评论 -
python将列表格式的字符串转化为列表
from ast import literal_evala = "[2,3,4,5]"literal_eval(a)>>>[2, 3, 4, 5]非常奏效,推荐使用!原创 2019-09-25 14:49:38 · 2663 阅读 · 0 评论 -
python 二维数组转一维数组
import operatorfrom functools import reducea = [[1,2,3], [4,6], [7,8,9,8]]print(reduce(operator.add, a))>>>[1, 2, 3, 4, 6, 7, 8, 9, 8]原创 2019-09-25 14:54:27 · 24129 阅读 · 2 评论 -
如何将字符串转化为二维列表
比如这样的字符串:data = "120.927444,31.036067;120.927369,31.036068;120.927226,31.036123;120.926748,31.036288;120.926044,31.036519;120.925804,31.036683;120.925706,31.036771;120.925675,31.03692;120.925967,31.03...原创 2018-05-29 15:05:43 · 4994 阅读 · 1 评论 -
从地图抓取小区边界经纬度
某德地图会返回假数据,并不是封你IP的策略,一定要注意,有可能也会封,但是我爬的时候,间隔比较长。2、3秒。最后还是用的代理,单机无法完成任务,量比较大。后来根据算法识别出,爬取的这个点是不是真实的数据,有两种方法:其一:判断抓取的连续的经纬度点,是否有锐角,有几个,在真实的数据中很少有图形是锐角的,这种方法,有可能会有误伤。其二:在抓去之后,会有一个area的字段,你可以根据...原创 2018-05-27 12:57:20 · 10543 阅读 · 17 评论 -
Pandas工作实践数据分析总结
Pandas常用的功能函数和数据处理技巧修改列名称file_data = pd.read_csv(‘data.csv’)file_data.rename(columns = {file_name.columns[0]:’new_name’}, inplace=True) inplace表示是否要修改。重置索引值首选:df_new = df.reset_index(drop=T...原创 2018-02-24 11:34:02 · 3498 阅读 · 0 评论 -
pandas中的替换场景
工作中有个坑,自己做之前效率太低,后来知道了一个方法。应用场景如下,需要在一个数据中找到为空的值,然后用同样的值去替换,或者用同一行中,右边的值,替换掉为空的值。其中,需要用到的函数为:import numpy as npimport pandas as pddf.fillna(0)将取值为NaN的元素都赋值为0df.fillna(method = “ffill”) 用上一原创 2018-01-16 16:46:23 · 1224 阅读 · 0 评论 -
python中根据日期字符串求周几
datetime.datetime.fromtimestamp(time.mktime(time.strptime(“20170201”, "%Y%m%d"))).weekday()原创 2018-01-22 18:14:35 · 4663 阅读 · 3 评论 -
解决Mac下geohash无法安装和无法导入的问题
安装的conda,conda install geohash但是问题是找不到安装包,因此这时使用 pip install geohash 安装成功。但是无法导入的问题,写import geohash提示无法找到模块,解决办法是这样的:最后解决办法是去anaconda目录下,搜索文件,把Geohash文件夹重命名为geohash,然后修改该目录下的__init__.py文件,把f原创 2017-12-19 11:54:06 · 842 阅读 · 0 评论 -
获取libsvm格式的数据
#!/usr/bin/python# -*- coding:utf-8 -*-#author: by Tongimport sysimport csvreload(sys)sys.setdefaultencoding("utf-8")def setlibsvm(): readin = open('data.txt','r') output = open("lib_原创 2018-01-11 17:29:42 · 1236 阅读 · 0 评论 -
python中的replace无法替换字符串
今天,这个坑,找了将近半小时,无意中发现的。程序员最苦逼的就是,有错误,但是不知道错在哪?!replace替换字符串的时候,需要重新赋值给变量,因为在python中字符串是不可变对象,因此在使用的时候我们必须重新赋值,就这么简单。原创 2017-12-27 14:36:36 · 13840 阅读 · 6 评论 -
如何编程将经纬度合并成一个字符串,显示在高德地图上
工作中需要将经纬度合并成一个字符串,把这些点在地图上显示,通过这种直观的分布,来了解单车的投放效果。在数据库中,我们轻易的拿到了订单的创建时间和结束时间,以及开始和结束的经纬度。这个时候我们需要分析效果。比如数据是这样的:103.8098189,1.2949914103.9560835,1.3510637103.937966545,1.322原创 2017-12-15 14:52:26 · 3101 阅读 · 0 评论 -
Python中偏函数的理解
不用代码片了,直接敲代码:from functools import partial as ptoMyButton = pto(Button,top)CritButton = pto(MyButton,command = critCB, bg = 'white', fg= 'red')WarnButton = pto(MyButton,command = warnCB,原创 2017-04-26 14:42:35 · 6153 阅读 · 0 评论 -
总结一下这几个月实习的项目
第一个项目是有关反作弊的,基于小组讨论的准则来进行的规则判断,这是我人生中接触的第一份实习工作,第一个独立的任务,中间经历了很多的bug,让我一度相信那句话,项目锻炼人。之前写sql语句的时候,没想到平时学的简单的语句能在项目中起到关键作用,尤其感慨基础的重要性,我在学校写的最多的sql语句,也就十几二十行的样子,业务需要关联4个表,写了近100多行的sql语句,这并不算完,几次测试都通不过,在M原创 2018-02-06 23:28:43 · 1075 阅读 · 0 评论 -
根据经纬度点求面积
根据经纬度计算的面积,需要一个转化,才能和高德地图显示的面积是一致的。原理就是简单多边形求面积公式:data = "115.989099,39.646023;115.987394,39.645988;115.987371,39.647407;115.986684,39.647423;115.986602,39.648088;115.989095,39.648151;115.989188,39...原创 2018-05-27 12:35:15 · 36820 阅读 · 19 评论 -
将坐标字符串转化为列表
写了一个Python脚本,将字符串类型:data = "116.45078,39.878524;116.45078,39.87754;116.450803,39.876498;116.450766,39.876397;116.450645,39.876313;116.446727,39.876348;116.446733,39.876855;116.446793,39.876891;116.446...原创 2018-05-27 12:00:46 · 2009 阅读 · 1 评论 -
json解析数据中需要注意的几点
对于网页中数据抓取,如果碰到json类型的返回数据,这个时候,可以很方便的用json库来操作。首先:import jsoncontent = json.loads(html.contents)id = content['key']['key1']通过以上,可以获取json中的指定键来获取数值。但是在获取的过程中,需要这样来操作,至于为什么,可以细细体会一下:if type(content) =...原创 2018-05-06 15:56:12 · 764 阅读 · 0 评论 -
利用Python将数值型特征进行离散化操作
data = np.random.randn(20)factor = pd.cut(data,4)pd.get_dummies(factor)0 0 0 0 11 1 0 0 02 0 0 0 13 0 0 1 04 1 0 0 05 0 1 0 06 0 1 0 07 0 1 0 08 0 0 1 09 0 1 0 010 0 0 0 111 0 1 0 01...原创 2018-03-24 17:15:02 · 3961 阅读 · 0 评论 -
sklearn中填补缺失值的方法
from sklearn.preprocessing import Imputer填补缺失值:sklearn.preprocessing.Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True)主要参数说明:missing_values:缺失值,可以为整数或NaN(缺失值numpy.n...原创 2018-03-10 19:15:48 · 8327 阅读 · 3 评论 -
Python中的垃圾回收和引用环的处理
和Java语言一样,Python也有自己的垃圾回收机制。当Python中的对象越来越多的时候,会占用大量的内存空间,在某个时机,Python会自己“瘦身”,对垃圾进行回收。从基本原理来说,Python中记录了每个对象的引用次数,当引用次数为0的时候,就要被当做垃圾进行回收。在Python中通常用del语句来显示的删除对象的引用。虽然有这种机制存在,但是运行是需要耗费一些资源的,如果内存4G,数据有...原创 2018-02-23 14:59:59 · 2008 阅读 · 0 评论 -
python中的参数*和**的问题
在python开发过程中,有些函数的参数前面是带*的,和**的,也有的没有任何*,怎么理解,什么意思呢?def add(data): sum = 0 for i in data: sum = sum + i return sumdef add(*data): sum = 0 for i in data: sum = su...原创 2018-02-27 12:01:47 · 11124 阅读 · 0 评论 -
Python中“a bytes-like object is required, not 'str'”的问题
我在Socket编程的时候遇到这个问题:首先在书上的例程中,并没有出现encode函数。所以在这里,帮同样入坑的同学。服务器端的程序,以及对应的客户端的程序:from socket import *from time import ctimeHOST = 'localhost'PORT = 55556BUFSIZ = 1024ADDR = (HOST原创 2017-04-10 16:07:47 · 5032 阅读 · 2 评论