利用Python进行数据分析 Unit 2
2.1 Python解释器
Python是一种解释型语言
在终端运行python代码时,我要退出解释器回到命令行时,输入exit()或者按下Ctrl+D来实现
如何在命令行运行一个python程序?
python hello_world.py
2.2 Python基础
import numpy as np
data={i:np.random.randn() for i in range(7)}
data #当你在IPython中仅输入一个变量名,会返回一个表示该对象的字符串
{0: -0.9256515097573629,
1: -0.45599911212698563,
2: 0.14801057889731828,
3: 1.4912085745522994,
4: 0.8271029150478258,
5: -0.06567834830118613,
6: -0.32664162261193924}
print(data) #使用print方法在标准python解释器中打印data变量,可读性变差
{0: -0.9256515097573629, 1: -0.45599911212698563, 2: 0.14801057889731828, 3: 1.4912085745522994, 4: 0.8271029150478258, 5: -0.06567834830118613, 6: -0.32664162261193924}
2.2.2 运行Juoyter notebook
notebook是一种交互式的文档类型
如何启动Jupyter notebook?
1-在终端中输入 jupyter notebook
2-使用http地址浏览notebook 地址是http://localhost:8888/
2.2.3 Tab补全
Tab补全可实现:
1-对象名补全
2-路径名补全
3-关键字补全
2.2.4 内省
什么是内省?
答:在变量名的前后使用 '?'
b=[4,2,3]
?b
#内省的作用是?
#答:显示该对象的概要信息
Type: list
String form: [4, 2, 3]
Length: 3
Docstring:
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
'??'双问号又是什么意思
答:可以显示函数的源代码
def add_number(a,b):
"""
ADD two numbers together
Returns
----
The_sum:type of arguments
"""
return a+b
?? add_number
Signature: add_number(a, b)
Source:
def add_number(a,b):
"""
ADD two numbers together
Returns
----
The_sum:type of arguments
"""
return a+b
File: /data/nas/workspace/jupyter/笔记/<ipython-input-10-bea6a841eff2>
Type: function
内省的终极作用:
问号(?)可以和通配符(*)联用,会显示所有匹配通配符表达式的命名
np.*load*?
np.__loader__
np.load
np.loads
np.loadtxt
2.2.5 %run命令
%run的作用:
答:可以在IPython会话中运行任意的Python程序
例如 %run ipython_test.py
如何中断运行中的代码? Ctrl+C
执行剪切板中的程序
在IPython中可以使用%paste和%cpaste魔术函数,执行剪切板中的代码(notebook中不可以)
2.2.7终端快捷键
Ctrl+C 中断正在执行的代码
Ctrl+A 将光标移动到本行起始位置
Ctrl+E 将光标移动到本行结束位置
Ctrl+U 删除本行所有内容
Ctrl+K 删除光标后内容
2.2.8 关于魔术命令
魔术命令的前缀是%
当然魔术命令也可以不加%使用(如果没有与之同名的函数时)
魔术函数也像其他Python函数一样,其输出可以付给一个变量
2.2.9 matplotlib集成
当你创建的图形无法显示时,记得使用%matplotlib魔术函数
2.3 Python语言基础
2.3.1
建议使用四个空格作为你的默认缩进,而不是Tab
冒号(:)代表缩进代码块的开始
写在井号(#)后的文本自动被Python编译器忽略
什么是方法?
答:几乎所有python对象都有的内部函数,称为方法
什么是引用?
答:在python中对一个变量进行赋值时,就创建了一个指向等号右边的引用
a = [1,2,3]
python 下可以实现两个引用指向同一个对象
a = [1,2,3]
b = a
可以使用isinstance函数来检查一个对象是否是特定类型的实例
什么是属性?
答:python对象“内部”存储的其他对象
什么是方法?
答:与对象内部对象有关的函数
什么是模块?
答:以.py为后缀并且包含python代码的文件
怎么使用模块下的内部函数和内部对象?
答:
import some_module as sm
from some_module import PI as pi, g as gf
r1=sm.f(pi)
r2=gf(6,pi)
等同于
import some_modul
result=some_modul.f(5)
pi=some_modul.PI
is 和 == 的区别
答:is比较的是对象地址 ==比较的是对象(变量)内容
可变对象和不可变对象
答:列表、字典、Numpy数组是可变对象(对象和对象值都可以被修改)
字符串和元组是不可变对象
但是,要记住,你可以修改一个对象并不代表你应该那样做
2.3.2 标量类型
数值类型:int(可以存储任意大小的数字)和float(双精度64位)
python中除法(/)会将结果自动转为浮点数
字符串:对于含有换行符的字符串,你可以使用三个单引号(''' 字符串''') 或三个双引号("""字符串""")
反斜杠(\)的用处?
答:\是一种转义符号,用来指明特殊符号,比如换行符号\n
如果字符串有大量反斜杠需要转义,如果都使用\转义,显得很麻烦,此时我们只需要在字符串前面加一个前缀符号r,表明这些字符是原生字符;
格式化字符串format
布尔值
布尔值可以和or联用
类型转换
int 、str、bool、float既是数据类型又是类型转换函数
时间和日期
python中内建的有datetime模块,提供了datetime、date和time类型
datetime类型是包含日期和时间信息
对于datetime对象,可以对其使用date方法和time方法获取它的date和time对象
datetime类型数据可以通过strftime()转为字符类型
字符类型数据可以通过strptime()转为datetime类型
替换时间序列数据时,使用replace()函数
for循环
for循环用于遍历一个集合(比如元组或者是列表)或者是一个迭代器 continue关键字可以跳过continue之后的代码,进入下一次循环 break关键字可以结束一个for循环
pass 什么都不做语句
range
range函数返回一个迭代器,该迭代器生成一个等差整数数组 这个等差数组的起始数、结尾数和步进(可正可负)可以传参给range函数
三元表达式
python中的三元表达式允许你将一个if-else代码块联合起来,优点是压缩代码量

浙公网安备 33010602011771号