pyhon中平时碰到的小知识总结
来源:互联网 发布:上海博科资讯java 编辑:程序博客网 时间:2024/06/04 17:53
1:sep的用法
gy_contest_link_traveltime_training_data = pd.read_table('training_data.txt',sep=';')
他的作用就是让training_data.txt中的数据输出时中间加上sep后面的内容分号;输出的每一列都用;分开输出,比如输出123,而用了sep后输出的是1;2;3
2:loc和iloc的用法总结
loc主要用在panda数据结构中的dataframe中,主要是用来定位位置用的,dataframe是一个框架的形式,如果第几行第几列没有数字,那就默认为NANA B C D
0 4 5 6
1 8 7 9
4 4 5
6 7 3 6
①data=df.loc(:,['A','C']) (输出所有行和第A和C两列的值)
②data=df.iloc(:,[0,2]) (0,2就是A和C的位置坐标,当用iloc时是定位的坐标而不是具体的行列数)
③data=df.loc([0:2],['A','C'])(这里是制取前两行的和AC两列的值)
④data=df.iloc([0:2],[0,2])
通过上面的四个形式,就能很好的理解他们的用法了
3:pd.to_datetime的用法总结
df=pd.read_table('文件的绝对路径.txt',sep=",") #读取文件
df.columns=["a","b","c"] #列的命名
df['c']=pd.to_datetime(df['c'],format='%Y-%m-%d%H;%M;%s')#读取的日期转化为datatime的格式
x=[i.year for i in df["c"]]
print x
4:pandas get_dummies
import pandas as pd
s=pd.Series(list('abcd'))
print pd.get_dummies(s)
输出结果为
a b c
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
5:pd.groupby的用法
pandas提供的groupby的功能很灵活,对数据集进行切片、切块、摘要等操作。根据一个或者多个键拆分pandas对象。计算分组摘要统计,如计数、平均数、标准差,
import pandas as pd
df=pd.DataFrame({'key1':{'a','b','c','a'],'key2':['one','two',one','two','one'],'data1':np.random.randn(5),'data2':np.random.randn(5)))
grouped =df['data'].groupby(df['key1'])
grouped.mean()
其效果和下面的语法的效果是一样的
means
=
df[
'data1'
].groupby([df[
'key1'
], df[
'key2'
]]).mean()
6:python中eval()函数的用法
可以把list,tuple,dict和string相互转化。
#################################################
字符串转换成列表
>>>a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
>>>type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
>>> type(b)
<type 'list'>
#################################################
字符串转换成字典
>>> a = "{1: 'a', 2: 'b'}"
>>> type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
{1: 'a', 2: 'b'}
>>> type(b)
<type 'dict'>
#################################################
字符串转换成元组
>>> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
>>> type(a)
<type 'str'>
>>> b = eval(a)
>>> print b
([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
>>> type(b)
<type 'tuple'>
7:Python中的future模块的作用
python提供的__future__模块,是把下一个新版本的特性导入到当前版本,这样就可以在当前版本中测试一些新版本的特性,主要就是版本2.7中下载一部分代码中测试一些3.0的特性,乳沟没问题再将3.0的代码移植到2.7中。
由于Python是由社区推动的开源并且免费的开发语言,不受商业公司控制,因此,Python的改进往往比较激进,不兼容的情况时有发生。Python为了确保你能顺利过渡到新版本,特别提供了__future__模块,让你在旧的版本中试验新版本的一些特性
8:Python中的collection模块的作用
python有一些内置的数据类型,比如str,int,list,tuple,dict等,collectiongs模块在这些内置数据类型的基础上,提供了几个额外的数据类型:
①:namedtuple():生成可以使用名字访问元素内容的tuple子类
②:双端队列,可以快速的从另一端追加推出对象
③:Counter:计数器,主要用来计数
④:orderDict:有序字典
⑤:defaultdict:带有默认的字典
9:Python中列别和元组的区别
①:列表是可以改变的,但是元组是不能更改的
②:列别可以利用append()方法进行添加,而元组不能更改
③:Python采用元组的方法使含义更加明确(namedtuple)
10:Python中zip()函数的用法
x=[[1,2],[2,3]]
y=[[6,7],[8,9]]
z=zip(x,y),
z=[[1,6],[2,7],[2,8],[3,9]]
z=zip(*x,y)的作用就是一个类似解压包的过程
11:tf.cast()函数的用法
a = tf.Variable([1,0,0,1,1]) b = tf.cast(a,dtype=tf.bool,name=None)
tf.cast就是将a的原来的数据格式转化为目标类型dtype=bool类型,命名name为:
12:import pickle: pickle模块的作用是将数据对象保存到文件中
pickle模块实现基本数据的序列化和反序列化。pickle模块的序列化操作是将程序中运行的对象信息保存到文件中永久保存;反序列化操作是我们从文件中创建上一次程序保存的对象。
pickle.dump(obj, file ,[,protocol]),将对象obj保存到文件file中去,protocol为序列化的协议版本。
pickle.load(file);从file中读取一个字符串,并将它重构为原来的python对象。file为文件对象,有read()和readline()接口。
13:python中join()的用法
>>> a="aaaddd"
>>> ",".join(a)
' a,a,a,d,d,d'
>>> b="ccccbbbb"
>>> "|".join(a+b)
'a|a|a|d|d|d|c|c|c|c|b|b|b|b'
14:np.random.seed()
seed()的用法,如果为np.random.seed(5)那意思是产生5个相同的随机数字,如果没有指定seed()后面具体是多少,那每次循环时产生的随机数都是不同的
15:numpy库中tlie函数的用法、
a=array(1,3)
tile(a,1)
输出:array([1,2])
tile(a,2)
输出:array([1,2,1,2])
tile(a,3)
输出:array([1,2,1,2,1,2])
tile(a,(1,1))
输出:array([[1,2]]
tile(a,(1,2))
输出:array([[1,2,1,2]])
tile(a,(2,1))
array([[1,2],
[1,2]])
总结:tile(a,(1,2))里面参数1是控制a的行数,2是控制a的重复次数
15:tf.concat()的用法
tf.concat(concat_dim, values, name='concat')
第一个参数concat_dim:必须是一个数,表明在哪一维上连接\如果concat_dim
是0,那么在某一个shape的第一个维度上连,对应到实际,就是叠放到列上
如果concat_dim
是1,那么在某一个shape的第二个维度上连
第二个参数values:就是两个或者一组待连接的tensor了
- t1 = [[1, 2, 3], [4, 5, 6]]
- t2 = [[7, 8, 9], [10, 11, 12]]
- tf.concat(0, [t1, t2]) == > [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]
- t1 = [[1, 2, 3], [4, 5, 6]]
- t2 = [[7, 8, 9], [10, 11, 12]]
- tf.concat(1, [t1, t2]) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12
- t1=tf.constant([1,2,3])
- t2=tf.constant([4,5,6])
- #concated = tf.concat(1, [t1,t2])这样会报错
- t1=tf.expand_dims(tf.constant([1,2,3]),1)
- t2=tf.expand_dims(tf.constant([4,5,6]),1)
- concated = tf.concat(1, [t1,t2])#这样就是正确的
seq=('name','sex','age')dict=dict.fromkeys(seq)print(str(dict))dict=dict.fromkeys(seq,2)print(str(dict))
{'name': None, 'sex': None, 'age': None}
{'name': 2, 'sex': 2, 'age': 2}
17:npy和npz的区别
文件存取的格式:二进制和文本。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。
np.save("a.npy",a)
c=np.load("a.npy")
文件保存为npy否则会出错,保存numpy专用二进制格式化后,就可以用notepad++打开乱码看了
18:np.stack(),np.hstack(), np.dstack(),np.vstack(),np.vsplit()等的用法:
1:np,stack(arrays,axis=0)
- >>> arrays = [np.random.randn(3, 4) for _ in range(10)]
- >>> np.stack(arrays, axis=0).shape
- (10, 3, 4)
- >>> a = np.array((1,2,3))
- >>> b = np.array((2,3,4))
- >>> np.hstack((a,b))
- array([1, 2, 3, 2, 3, 4])
- >>> a = np.array([[1],[2],[3]])
- >>> b = np.array([[2],[3],[4]])
- >>> np.hstack((a,b))
- array([[1, 2],
- [2, 3],
- [3, 4]])
- >>> a = np.array([1, 2, 3])
- >>> b = np.array([2, 3, 4])
- >>> np.vstack((a,b))
- array([[1, 2, 3],
- [2, 3, 4]])
- >>>
- >>> a = np.array([[1], [2], [3]])
- >>> b = np.array([[2], [3], [4]])
- >>> np.vstack((a,b))
- array([[1],
- [2],
- [3],
- [2],
- [3],
- [4]])
- >>> a = np.array((1,2,3))
- >>> b = np.array((2,3,4))
- >>> np.dstack((a,b))
- array([[[1, 2],
- [2, 3],
- [3, 4]]])
- >>>
- >>> a = np.array([[1],[2],[3]])
- >>> b = np.array([[2],[3],[4]])
- >>> np.dstack((a,b))
- array([[[1, 2]],
- [[2, 3]],
- [[3, 4]]])
- pyhon中平时碰到的小知识总结
- 平时积累小知识
- 总结一下平时常用的知识
- 平时小总结(2)
- 复习spring碰到的一些小知识
- 一些平时用到的技术小知识(持续更新)
- Android 中常见的小知识总结
- hi3520d中一些小知识的总结
- 平时碰到的各种感觉难以理解或者容易混淆的概念的总结-持续
- 经常碰到的小问题和小知识
- 你的生活中碰到过哪些平时注意不到的绝美事物?
- 微信小程序里碰到的坑和小知识
- 工作中碰到的小问题
- Android中碰到的小问题(1)
- 开发中碰到的几个小问题
- 使用路由器中碰到的问题总结
- Genymotion使用中碰到的问题总结
- java中关于数组知识的小总结
- C# TPC/IP数据通信
- Activity生命周期学习备录
- Python将某一文件夹下的Coursera课程字幕.vtt格式全部转换为.srt格式
- 模块和插件开发 简介
- 重命名后后缀名重现
- pyhon中平时碰到的小知识总结
- DOC 列表表单域类型List form field type
- tcpdump学习笔记记录
- loadrunner 自动切换参数设置--根据别人的经验操作
- http_build_query的用法
- Burpsuite神器常用功能使用方法总结
- [Linux] yum只下载不安装rpm包的两种方法
- 值得推荐的C/C++框架和库
- JavaScript 选择器 笔记