pickle

基于sklearn进行文本向量化

女生的网名这么多〃 提交于 2020-05-06 01:47:39
sklearn中,计数向量化用 CountVectorizer ,tfidf向量化用 TfidfVectorizer : import pickle from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer def test(vectorizer, word_bag, test_data): test_matrix = vectorizer.transform(test_data) print (test_matrix.shape) array = test_matrix.toarray() for rid in range(len(array)): print (test_data[rid], " \t " , "" .join([ " (%s, %.5f) " % (word_bag[cid], array[rid][cid]) for cid in range(len(word_bag))])) def vectorize(): train_data = [ " 我 来到 北京 清华大学 " , " 他 来到 了 网易 杭研 大厦 " , " 小明 硕士 毕业 与 中国 科学院 " , " 我 爱 北京 天安门 " ] # vectorizer = CountVectorizer

数据分析核心包——pandas

自古美人都是妖i 提交于 2020-05-01 03:31:55
一、pandas简介   pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的。 1、pandas的主要功能   (1)具备对其功能的数据结构DataFrame、Series   (2)集成时间序列功能   (3)提供丰富的数学运算和操作   (4)灵活处理缺失数据 2、安装和引用 # 安装方法: # pip install pandas # 引用方法: import pandas as pd 二、Series——一维数据对象   Series是一种类似于 一维数组的对象 ,由一组数据和一组与之相关的数据标签(索引)组成。 # Series创建方式 >>> import pandas as pd >>> pd.Series([2,3,4,5]) 0 2 1 3 2 4 3 5 dtype: int64 >>> pd.Series([2,3,4,5], index=['a','b','c','d']) a 2 b 3 c 4 d 5 dtype: int64   获取值数组和索引数组:values属性和index属性。   Series比较像列表(数组)和字典的结合体。 1、Series——使用特性 (1)Series支持array的特性(下标) # 从ndarray创建Series:Series(arr) >>> import numpy as np >>>

Python 3.8 新功能【新手必学】

房东的猫 提交于 2020-04-30 01:58:23
Python 3.8 是 Python 编程语言的最新主要版本, 它包含许多新功能和优化。 Python 3.8 Python 3.8 的一些新功能包括: 1. 海象运算符 PS:很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,都会解决哦! 在这个新版本中,我们有一种新的赋值运算符,称为 Walrus 运算符 := 。该运算符的优点是可以在一行中设置和返回变量。例如: Code : sample_data = [ {“ id” : 1 , “name” : “Srijan” } , {“ id” : 2 , “name” : “Abhishek” } , {“ id” : 3 , “name” : “Dilip” } , {“ id” : 4 , “name” : “Vishal” } , {“ id” : 4 , “name” : None } , ] print (“With Python 3.8 Walrus Operator :” ) for entry in sample_data : if name : = entry .get (“name” ) : print (f’Found

利用python进行数据分析1_numpy的基本操作,建模基础

不羁岁月 提交于 2020-04-30 01:57:47
import numpy as np # 生成指定维度的随机多维数据 data=np.random.rand(2,3) print(data) print(type(data)) 结果: [[0.11959428 0.52816495 0.31736705 ] [ 0.75400637 0.26683732 0.54080784 ]] < class ' numpy.ndarray ' > View Code print('维度个数',data.ndim) print('各维度大小',data.shape) print('数据类型',data.dtype) 结果: 维度个数 2 各维度大小 ( 2, 3 ) 数据类型 float64 View Code 补充: import numpy as np # 生成指定维度的随机多维数据 data2=np.arange(1,10,2)#间隔为2 print(data2) print('元素个数',data2.size) # 5 ndarray,N维数组对象(矩阵) 所有元素必须是相同类型 ndim属性:维度个数 shape属性:各维度大小 dtype属性:数据类型 创建ndarray #list转换为ndarray l=range(10) data=np.array(l) print(data)#[0 1 2 3 4 5 6 7 8 9]

Python的小数据存储,用什么格式更有逼格?

二次信任 提交于 2020-04-29 18:51:43
小数据存储 我们在编写代码的时候,经常会涉及到数据存储的情况,如果是爬虫得到的大数据,我们会选择使用数据库,或者excel存储。但如果只是一些小数据,或者说关联性较强且存在存储后复用的数据,我们该如何存储呢? 使用open保存文本 最简单、粗暴+无脑的存储方式就是保存成一个文本文档了。 使用open函数,将结果一行行的保存成文本,这里涉及的知识点只有简单的几条: 文件读写模式,r 、w、a、b、+ ,掌握这几种即可。 使用单独的open打开文件时,需要注意结尾时的调用close()函数关闭文档 推荐使用上下文管理器的with open操作 csv文件 之所以将csv与excel分开说,首先需要扫盲下,csv属于特定格式的文本文件(使用逗号分隔),而excel是二进制文件。 csv可以直接使用文本编辑器打开,excel不行… 其实csv文件,完全可以使用open函数进行保存,只要你将每行数据都使用,分隔开即可。 另外,python自带csv库,可以很方便的操作与保存该数据 xml文件 xml文件的方式,已经逐渐被淘汰了,为什么这么说?因为它繁琐的树形结构,导致了在传输过程中,占用了更多的内存。所以,除非必要,真的不推荐以xml的形式存储你的数据… configparser python模块中configparser是一个专门用来保存配置文件的模块库

细说【json&pickle】dumps,loads,dump,load的区别

我的梦境 提交于 2020-04-29 18:50:09
1 json.dumps() json.dumps()是将字典类型转化成字符串类型。 import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} jsObj = json.dumps(name_emb) print(name_emb) print(jsObj) 2 json.dump() json.dump()用于将dict类型的数据转成str,并写入到json文件中 import json name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} emb_filename = ('/home/cqh/faceData/emb_json.json') # solution 1 jsObj = json.dumps(name_emb) with open(emb_filename, "w") as f: f.write(jsObj) f.close() # solution 2 json.dump(name_emb, open(emb_filename, "w")) 3 json.loads() json.loads()将字符串类型转化成字典类型 import json name_emb = {'a':'1111','b':'2222','c':

python入门第二十天 JSON 、 PICKLE

為{幸葍}努か 提交于 2020-04-29 14:51:27
python 内置函数 描述 eval() 函数用来执行一个字符串表达式,并返回表达式的值。 语法 以下是 eval() 方法的语法: eval(expression[, globals[, locals]]) 参数 expression -- 表达式。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。 返回值 返回表达式计算结果。 实例 以下展示了使用 eval() 方法的实例: >>>x = 7 >>> eval( ' 3 * x ' ) 21 >>> eval( ' pow(2,2) ' ) 4 >>> eval( ' 2 + 2 ' ) 4 >>> n=81 >>> eval( " n + 4 " ) 85 向文件写入数据: 1 dic=str({ ' 1 ' : ' 111 ' }) 2 f=open( ' test ' , ' w ' ) # TypeError: write() argument must be str, not set 3 f.write(dic) 4 5 f.close() 从文件中取出数据: 1 f=open( ' test ' , ' r ' ) 2 data= f.read() 3 print (eval(data)[ ' 1 '

使用lsh快速检索语义-词向量结合

主宰稳场 提交于 2020-04-29 13:46:24
""" test """ import os import gensim import pickle import time import numpy as np DIR_PATH = os.path.dirname(os.path.abspath( __file__ )) HASHTABLES = os.path.join(DIR_PATH, ' resource ' , ' hashtables.pkl ' ) WORD2VEC = os.path.join(DIR_PATH, ' resource ' , ' sgns.weibo.word ' ) RESOURCES = os.path.join(DIR_PATH, ' resource ' , ' resources.pkl ' ) class MyClass(object): def __init__ (self, Table_num=5, Hashcode_fun=5 ): self.hashtables = HASHTABLES self.word2vec = WORD2VEC self.resources = RESOURCES self.table_num = Table_num self.Hashcode_fun = Hashcode_fun def load_traindata(self): model =

【Python046--魔法方法:描述符】

旧巷老猫 提交于 2020-04-29 13:24:19
一、描述符的定义: 描述符就是将特殊类型的类的实例指派给另外一个类的属性 1、举例: 特殊类型的类要实现以下三个方法中的其中一个或者全部实现 * __get__(self,instance,owner)  --用于访问属性,它返回属性的值 * __set__(self,instance,value) --用于设置属性,不返回任何内容 * __delete__(self,instance) --控制删除操作,不返回任何内容 class MyDecriptor: def __get__ (self,instance,owner): # 打印查看描述符的get,set,delete方法中各个参数的含义 print ( " getting... " ,self,instance,owner) def __set__ (self,instance,value): print ( " setting... " ,self,instance,value) def __delete__ (self,instance): print ( " deleteing... " ,self,instance) class Test: # 把特殊类MyDecriptor的实例指派给Test类的x属性 x = MyDecriptor() 执行结果: >>> test = Test() >>> test.x

Python中Json 和 pickle 详解

风格不统一 提交于 2020-04-29 13:18:45
序列化和反序列化 ​ eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了,所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值。 ​ 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。 为什么要序列化? 1:持久保存状态 在断电或重启程序之前将程序当前内存中所有的数据都保存下来(保存到文件中),以便于下次程序执行能够从文件中载入之前的数据,然后继续执行,这就是序列化。 2:跨平台数据交互 序列化之后,不仅可以把序列化后的内容写入磁盘,还可以通过网络传输到别的机器上,如果收发的双方约定好实用一种序列化的格式,那么便打破了平台/语言差异化带来的限制,实现了跨平台数据交互。 在python中,有专门处理json格式的模块—— json 和 picle模块 json :序列化 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组