Python数据处理基础

Python本身可以处理的数据类型是比较有限的,但numpy、pandas、xarray等库引入了丰富的数据类型,从而拓展了Python在数据处理领域的使用。

1.1 Python数据类型

 

Python3 中有六个标准的数据类型:number(数字)

、string(字符串)、list(列表)、tuple(元组)、set(集合)、dict(字典)。

 

其中不可变的数据类型有3种:number(数字)、string(字符串)、tuple(元组);可变数据也是3种:list(列表)、dict(字典)、set(集合)。

 

六种数据类型或多或少都有一些内置函数可以使用,例如,list类型若需要添加数据,可使用:

a.append(x)

x为所需添加的数字,a为需要被添加数据的列表,append为对list类型内置的函数。

由于六种数据类型及其内置函数的数量较多,就不在此一一列举了,需要学习的童鞋可以使用如“number 类型内置函数”等关键词自行百度了解~

对于number类型,Python3 支持int(整型)、float(浮点型)、bool(逻辑判断,1或0)、complex(复数)。

1.2 Python数据类型转换

Python自带了一些数据类型之间的转换函数,常用到的部分通常是以下函数:

函数

描述

int(x)

将x转换为整数

float(x)

将x转换成浮点数

str(x)

将 x 转换为字符串

tuple(s)

将序列s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。且必须按照(key, value)元组序列输入。

frozenset(s)

转换为不可变集合

chr(x)

将整数转换为字符

ord(x)

将字符转换为其Ascii值

hex(x)

将整数转换为十六进制字符串

oct(x)

将整数转换为八进制字符串

1.3 运算符

Python3里内置了相当丰富的运算符,甚至一些在其他语言里需要通过函数才能完成的运算,在Python里只需要简单地使用运算符就可以达到目标。

算术运算符

除了众所周知的加减乘除(+、-、*、/)之外,Python的算术运算符还包括:

运算符

含义

%

取模,返回除法的余数

**

幂运算

//

向下取整的除法

逻辑运算符

除了众所周知的大于小于等于(>、<、=)之外,还需要注意判定相等和不相等的写法:

运算符

含义

==

表示相等

!=

表示不等于

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:810735403

赋值运算符:

除此之外,Python自由灵活之处还在于其定义了一系列灵活的算术写法:

符号

含义

=

赋值

+=

加法赋值运算符 

-=

减法赋值运算符

*=

乘法赋值运算符

/=

除法赋值运算符

%=

取模赋值运算符

**=

幂赋值运算符

//=

取整除赋值运算符

其使用方法为:

x += 1

相当于:

x = x+1

其余均可类似类推。

逻辑运算符

运算符

含义

and

or

not

除此之外,Python里还引入了 成员运算符和身份运算符。在写循环和条件判断的时候经常用到:

成员运算符

运算符

含义

in

判断序列中是否有成员x,是返回True

not in

判断序列中是否有成员x,否返回True

举个循环里用到的栗子:

a = [1,2,3,4,5]
for each in a:
    print(a)

得到:

Python数据处理基础_第1张图片

身份运算符

运算符

含义

is

判断两个标识符是不是引用自一个对象

is not

判断两个标识符是不是引用自不同对象

还有气象里不太常用到的位运算符

运算符

含义

&

按位与运算符

 按位或运算符

^

按位异或运算符

~

 按位取反运算符

<<

左移动运算符

>>

右移动运算符

2.numpy库

    是不是感觉Python自带的数据类型实在太少了,面对各类数据的庞杂多样它根本不够用?没错,前辈们也这样觉得,因此numpy库就闪亮登场了。numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上。其类型包括:

名称

描述

bool_

布尔类型(True 或者 False)

int_

默认整数类型(类似于 C 中的 long,int32 或 int64)

intc

与 C 的 int 类型一样,一般是 int32 或 int 64 

intp

用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)

int8

字节(-128 to 127)

int16

整数(-32768 to 32767)

int32

整数(-2147483648 to 2147483647)

int64

整数(-9223372036854775808 to 9223372036854775807)

uint8

无符号整数(0 to 255)

uint16

无符号整数(0 to 65535)

uint32

无符号整数(0 to 4294967295)

uint64

无符号整数(0 to 18446744073709551615)

float_

float64 类型的简写

float16

半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位

float32

单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位

float64

双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位 

complex_ 

128 位复数类型的简写

complex64

复数,表示双 32 位浮点数(实数部分和虚数部分)

complex128

复数,表示双 64 位浮点数(实数部分和虚数部分

通过numpy库进行的数据类型转化也要通过函数才能进行,但并没有像之前出现的那样繁琐,通过astype()函数即可完成,使用方法如栗子所示:

import numpy as np
a = np.arange(0,1,0.1)
b = np.astype('int')

并且,numpy库添加了相当多计算、统计相关的函数,包括但不限于:

函数

含义

sqrt()

平方根

sin() cos()

三角函数

abs()

绝对值

log/logl/log2()

对数函数

exp()

指数函数

cumsum()

累积求和

cumproduct()

累积求积

sum()

求和

mean()

求平均

nanmean()

求除nan值(气象中缺测值)之外的平均

median()

中位数

std()

标准差

var()

方差

corrcoef()

相关系数

更多可查看官网界面查询:www.numpy.org.cn/reference/

3.pandas库

    numpy虽然有着各种各样的优点,但也有着自己的缺点,例如对于结构化数据的存取及处理很不灵活,因此基于numpy库编写出的pandas库应运而生。

   pandas库引入了Series和DataFrame两种基本方式来存取数据。

    pandas的数据类型与numpy大体相同,分为:字符串类型:object;整数类型:Int64,Int32,Int16, Int8;无符号整数:UInt64,UInt32,UInt16, UInt8;浮点数类型:float64,float32;日期和时间类型:datetime64[ns]、datetime64[ns, tz]、timedelta[ns];布尔类型:bool。

    数据类型转换函数与numpy相同, 为astype(),用法也类似。

    其常用计算函数有:

函数

含义

count()

统计个数

sum()

求和

mean()

求平均

mad()

平均绝对方差

argmin()

最小值的索引位置

idxmin()

每列最小值的行索引

mode()

众数

cov()

协方差

corr()

相关系数

pct_change()

时间序列变化

abs()

绝对值

sem()

标准误差

skew()

偏度系数

kurt()

峰度系数

更多可查阅官网:www.pypandas.cn/docs/

4.Xarray、netCDF4等库

    气象数据有其独特性,因此在之前的pandas等库的基础上,又发展出了在处理气象数据方面有着巨大优势的Xarray、netCDF4库等。

    xarray提供了非常灵活的索引方式,结合了numpy和pandas的优势来进行数据存储。气象家园里biubiubiu123童鞋的博客,对Xarray库在气象里的应用有着较为全面的帮助。复制链接即可直达目录贴:bbs.06climate.com/forum.php?mod=viewthread&tid=94639。Xarray的官方网站链接为:xarray.pydata.org/en/stable/index.html。机智的小伙伴可以按照本文之前整理其他库的逻辑,从数据类型、数据转换和计算函数三个方面进行整理学习。小编就不在这里进行赘述啦。(否则篇幅太长了)

同理,netCDF4库的github主页链接:github.com/Unidata/netcdf4-python。

在这里还是要推荐下我自己建的Python开发交流学习(qq)群:810735403,群里都是学Python开发的,如果你正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和高级开发教程,欢迎进阶中和想深入Python的小伙伴!

你可能感兴趣的:(学习Python,分享,python)