Python学习2016.3.30

python数据类型总结:


类型

描述

例子

备注

str

一个由字符组成的不可更改的有串行。

'Wikipedia'

"Wikipedia"

"""Spanning

multiple

lines"""

在Python 3.x里,字符串由Unicode字符组成

bytes

一个由字节组成的不可更改的有串行。

b'Some ASCII'

b"Some ASCII"

 

list

可以包含多种类型的可改变的有串行

[4.0, 'string', True]

 

tuple

可以包含多种类型的不可改变的有串行

(4.0, 'string', True)

 

set, frozenset

与数学中集合的概念类似。无序的、每个元素唯一。

{4.0, 'string', True}

frozenset([4.0, 'string', True])

 

dict

一个可改变的由键值对组成的无串行。

{'key1': 1.0, 3: False}

 

int

精度不限的整数

42

 

float

浮点数。精度与系统相关。

3.1415927

 

complex

复数

3+2.7j

 

bool

逻辑值。只有两个值:真、假

TrueFalse

 



Python函数使用

(1)df[column].values.tolist():数据框’column’(key)对应列的值转换为list。

 

(2)str(['(' + str(i) + ')' for i in l]).replace('[', '').replace(']','').replace("'", ''):循环for I in string 可以按顺序直接取出字符串中的单个字符,用.replace()替换原字符串中的符号。

 

(3)列表x=[1,2,3 ], x[0:1]=[1,2]

元组x=(1,2,3),不可改变的列表

字典dic={‘key1’: 1,’key2’: 3….},用key取值,dic[‘key1’]=1

都可以看作是一维的,存储的数据类型也没有要求,取值时用[ ]。数据框则复杂一些,列名有‘key’,行名有index,是二维的,常用pandas这个工具包。

Python中对数据的处理不同于我常用的MATLAB矩阵运算,总是将数据以矩阵的思维方式来处理,而是常用listtuple,可以存储更加丰富的数据类型,不止是数值型,他们可以通过打散成普通参数给函数,而dict可以打散成关键字参数给函数。同时Python还提供了numpy包,专门用于矩阵数值计算处理。所以Python的数据存储容器更加丰富,灵活好用。

 

(4)类的定义

类的方法:在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数,一定要用这个。
#类定义  
    class people:  
        #定义基本属性  
        name = ''  
        age = 0  
        #定义私有属性,私有属性在类外部无法直接进行访问  
        __weight = 0  
        #定义构造方法  
        def__init__(self,n,a,w):  
            self.name =n  
            self.age =a  
           self.__weight = w  
        def speak(self):  
           print("%s is speaking: I am %d years old"%(self.name,self.age))  

      
    p = people('tom',10,30)  
    p.speak()

I、类只是个抽象的定义,只有实例化后,才能使用其属性,方法。

II创建一个类之后,可以通过类的名称访问其属性。如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象。

IIIclass MyMsg: 是旧的书写方式。

class  MyMsg(object):  是新的书写方式,在Python3中只允许新的书写方式,所以建议使用新的书写方式。

 

(5)当前时间获取

相关包:datetime

Import datetime

Print(Time =datetime.datetime.now())

输出结果:2016-03-3017:16:35.288336

如果fromdatetime import datetime

Time =datetime.now()

获得需要的时间格式用Time= datetime.now().strftime(‘%Y-%m-%d %H:%M:%S’)

对应年,月,日,时,分,秒。

Python中默认的应用包是后面的,靠近代码的,如果包有重叠,后面引用的会覆盖前面的,所以有时要注意引用了哪些包,是否有重叠,是否顺序合理。

 

(6)str.format(),字符串的格式化函数,与%s的格式化功能相同,但更加强大,常会在打印输出时用到,它通过{}和:来代替%。

通过位置

In [1]: '{0},{1}'.format('kzc',18) 
Out[1]: 'kzc,18' 
In [2]: '{},{}'.format('kzc',18) 
Out[2]: 'kzc,18' 
In [3]: '{1},{0},{1}'.format('kzc',18) 
Out[3]: '18,kzc,18'

字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。
通过关键字参数

In [5]: '{name},{age}'.format(age=18,name='kzc') 
Out[5]: 'kzc,18'

通过对象属性

class Person: 
  def __init__(self,name,age): 
    self.name,self.age = name,age 
    def __str__(self): 
      return 'This guy is {self.name},is {self.age} old'.format(self=self) 
In [2]: str(Person('kzc',18)) 
Out[2]: 'This guy is kzc,is 18 old'

通过下标

In [7]: p=['kzc',18]
In [8]: '{0[0]},{0[1]}'.format(p)
Out[8]: 'kzc,18'

格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
比如

In [15]: '{:>8}'.format('189')
Out[15]: '   189'
In [16]: '{:0>8}'.format('189')
Out[16]: '00000189'
In [17]: '{:a>8}'.format('189')
Out[17]: 'aaaaa189'

精度与类型f
精度常跟类型f一起使用

In [44]: '{:.2f}'.format(321.33345)
Out[44]: '321.33'

其中.2表示长度为2的精度,f表示float类型。

 

其他类型
主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

In [54]: '{:b}'.format(17)
Out[54]: '10001'
In [55]: '{:d}'.format(17)
Out[55]: '17'
In [56]: '{:o}'.format(17)
Out[56]: '21'
In [57]: '{:x}'.format(17)
Out[57]: '11'

用,号还能用来做金额的千位分隔符。

In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'           

 

(7)pandas中常用方法,主要针对数据框,数据框类似于常用的表格设置,每列为一个变量,横条表示一个样本,不同日期或个体。

l  通常可以直接读取csv数据文件:df = pd.read_csv(‘文件路径.csv’)。

创建数据框:df = pd.DataFrame({….}),里面的形式是字典,每一列是序列的形式,也可以用pd创建,pd.Series([]),里面形式类似list。

l  pandas用np.nan表示缺失值,不计算。df.dropnp()丢弃有NAN的行,df.fillna(vaule=8)将缺失值替换成vaule值。

l  df.isnull()获取布尔值的 mask:哪些值是 NaN

l  df.apply()对数据(行或列) Apply 函数

l  pd.concat(df1,df2),简单地按行拼接

l  pd.merge(left, right, on='key')与SQL的Join类似, right, on='key')

l  df.append(),按行添加

l  df.groupby(‘a’).sum()按a分组,并求和,分组是按行的标记,求和是每列分别每组求和

l  df.dtype查看数据框中存放数据的类型,如int32, float,  x.__class__是查看x这个整体的存储容器类型


(8)

enumerate用法:

pythonenumerate的用法多用于在for循环中得到计数,enumerate参数为可遍历的变量,如字符串,列表等,返回值为enumerate类。

注意:在同时需要indexvalue值的时候可以使用 enumerate


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值