利用Python进行数据分析---第二章

本文介绍了Python数据分析的基础,包括IPython和Jupyter的使用,Python的语言语义,如缩进、对象模型、鸭子类型等。此外,还详细讲解了标量类型,如数字、字符串、日期时间,并探讨了可变与不可变对象。最后,提到了控制流相关概念,如range函数和三元表达式。
摘要由CSDN通过智能技术生成

利用Python进行数据分析学习记录

python基础

工具使用

  1. 要点记录:
    1)IPython和Jupyter可以在代码执行过程中进行交互,方便探索,并且它将许多Python对象被格式化为更易读的形式;
    2)Jupyter中%run的简单使用:
    a. %run *.py可以运行python程序,可以直接加入参数,但是参数是以字符串的形式传入
    b. 在当前命名空间中已经定义过的变量,可以在自己的代码中直接调用,但是要在%run 运行时,带上参数-i;
    比如,在命名空间中定义了一个变量d,然后在程序调用该参数。
    定义了变量d为6,运行时使用-i参数并传入参数1,2,调用参数d,计算结果为0.5
    c.可以通过使用%load函数,将代码导入到代码块中。导入时要使用>>> ,如上图。

3)Jupyter中魔术函数可以直接赋值给变量,如图:
在这里插入图片描述

语言语义

1.一般使用tab键或四个空格键缩进;
2.python的所有事物,包括数值,字符串,数据结构,函数,类等都是python对象;python提供了对象模型的一致性,这使得python非常灵活;
3.理解Python的引用的含义,数据是何时、如何、为何复制的,是非常重要的,尤其是当你用Python处理大的数据集时;
使用=赋值时,是将b指向了a所指的对象
4.当你将一个
对象作为参数传递给
一个函数时,在函数内部接收该对象的变量名就指向了这个对象,而不是将该对象复制给新的变量。因此,在函数中改变对象的值,上层的值也会改变;
在这里插入图片描述
5.对象引用不包含类型信息,类型信息保存在对象自身中,每个对象都有明确的类型,Python是强类型语言;
6.Python对象的属性和方法可以通过obj.attribute_name访问,也可以通过getattr函数和相关的hasattr和setattr函数访问,使用后者可以高效编写原生的、可重复使用的代码
7.可以用isinstance函数检查对象是某个类型的实例:
在这里插入图片描述
7.鸭子类型(Duck typing):一个对象有效的语义,不是由继承自特定的类或实现特定的接口(比如java中的继承),而是由当前方法和属性的集合决定;鸭子类型使得python的程序并不检查在调用函数时所传递的参数是否正确,而是通过在函数内部调用方法时判断传入的对象是否存在该方法,比如下面的 代码
首先,定义两个具有相同方法的类:

class duck():
  def walk(self):
    print('I walk like a duck')
  def swim(self):
    print('i swim like a duck')

class person():
  def walk(self):
    print('this one walk like a duck') 
  def swim(self):
    print('this man swim like a duck')

定义一个函数,并用该函数接收上述两个类的实例,如下:

def watch_duck(animal):
  animal.walk()
  animal.swim()

small_duck = duck()
watch_duck(small_duck)

output >> 
I walk like a duck
i swim like a duck


duck_like_man = person()
watch_duck(duck_like_man)

output >> 
this one walk like a duck
this man swim like a duck

可以看到,该函数并不会检查传入的实例,而是直接通过实例调用各自的方法;如果传入的实例中,要调用的方法不存在,则程序就会报错,如下:

class Lame_Foot_Duck():
  def swim(self):
    print('i am lame but i can swim')

lame_duck = Lame_Foot_Duck()
watch_duck(lame_duck)

output >>
AttributeError: Lame_Foot_Duck instance has no attribute 'walk'

8.可以通过import关键字导入.py文件,并使用.py文件中的变量,函数等,比如有如下代码片段:

#test.py;
PI = 3.1415
def f(x):
	return x + 2

def g(a, b):
	return a + b 

在同一个相同路径下可以这样连接到上述文件中的变量,函数:

import test
result = test.f(5)
pi = test.PI

9.比较特殊的运算符:
1). a / b 表示除; a // b 表示整除; a ** b 表示a的b次方;
2). is 和is not 最常用于检查一个变量是否为none;
10.python中的可变对象包括:列表,字典,数组等;不可变对象包括字符串,元组等;(建议能使用不可变对象,就是用不可变对象,因为修改可变对象,可能会引入副作用);

标量类型

1.概念:用于处理数值数据、字符串、布尔值,和日期时间。这些单值类型被称为标量类型;
2.数字类型:包括int类型和float类型;int类型可以存储任意大小数字,float类型时双精度64位浮点数;
3.字符串:python中字符串是不可变的,可以使用replace函数对字符串进行替换,如下:
在这里插入图片描述
4.反斜杠符号\是转义字符,可以指定特殊符号,比如\n,\,'等;如果要在字符串中使用特殊符号,就需要将其转义;如果字符串中有大量反斜杠符号时,可以在字符串前加一个前缀符号r,表明这些字符时原生字符,如下:
在这里插入图片描述
5.str、bool、int和float既是标量类型,也是函数,可以用来转换类型;
6.Python内建的datetime模块提供了datetime、date和time类型。datetime类型结合了date和time,是最常使用的;
7.可以通过strptime将字符串转换为datetime对象,也可以通过strftime函数将datetime对象转换为字符串;另外,可以分别通过date和time从datetime实例中取出其对象,如下:
在这里插入图片描述
8.datetime是不可变类型数据,但是在处理时间序列数据时,有时需要修改datetime的值,这时可以用dt.replace方法进行替换,但是这种替换不是修改datetime对象的值,而是生成新的对象,并将值放入其中,如下:
在这里插入图片描述
9.两个datetime类型数据的差会形成datetime.timedelta类型数据,将timedelta添加到datetime,会产生一个新的偏移datetime;如下:
在这里插入图片描述

控制流

1.python控制流与其他语言基本相同,这里不再记录;需要注意的是,在程序中有时要用到pass语句占位表示不执行任何操作,因为python是用缩进分割代码;
2.range(起始,结尾,步长)是在循环控制中经常使用的用于遍历的函数,它可以产生一个左闭右开的序列,如下:
在这里插入图片描述
3.Python中的三元表达式可以将if-else语句放到一行里,形式如下:

value = true-expr if condition else false-expr

虽然使用三元表达式可以压缩代码,但会降低代码可读性,一般不推荐使用;

Python的设计哲学是“优雅”、“明确”、“简单。Python用途极广。图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。 数学处理:NumPy扩展提供大量与许多标准数学库的接口。 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。 网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。 Web编程:应用的开发语言,支持最新的XML技术。 多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。 pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。 黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。 用Python写简单爬虫
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值