python数据分析方法和命令_《利用Python进行数据分析》 —— (1)

《利用Python进行数据分析》 —— (1)

Python的学习需要自主探索各种类型,函数和方法的文档。

2.1 Python解释器

在IPython(Jupyter Qtconsole)上,可以通过%run命令执行文件中的代码

In [16]: %run hellow.py 1,2,3 10

1,2,3

10

2.2 IPython 基础

2.2.3 Tab补全

在搜索交互命名空间和补全对象或模块属性时有用

当输入任意路径时,按下Tab可以补全你的计算机文件系统中匹配你输入内容的值。(与%run命令搭配可以大大提升效率)

tab补全的另一个应用场景是在函数的关键词参数(包含=)

2.2.4 内省

在变量前后使用问号?,可以显示对象的信息:

In [17]: b = [1, 2, 3]

In [18]: b?

Type: list

String form: [1, 2, 3]

Length: 3

Docstring:

Built-in mutable sequence.

If no argument is given, the constructor creates a new empty list.

The argument must be an iterable if specified.

如果对象是一个函数或实例方法且文档字符串已经写好,则文档字符串会显示出来。

In [19]: def f(x):

"""

this is a function

"""

return x + 1

In [20]: f?

Signature: f(x)

Docstring: this is a function

File: d:\python_data\

Type: function

??可以显示源码

In [23]: f??

Signature: f(x)

Source:

def f(x):

"""

this is a function

"""

return x + 1

File: d:\python_data\

Type: function

?还有一个用途,就是像Unix或Windows命令行一样搜索IPython的命名空间。字符与通配符结合可以匹配所有的名字。

In [22]: np.fi*?

np.fill_diagonal

np.find_common_type

np.finfo

np.fix

2.2.5 %run命令

文件中所有定义的变量(import、函数和全 局变量,除非抛出异常)在运行后,都可以在IPython shell中随后访问:

假如Python脚本需要命令行提供参数(通过sys.argv获取),则需要在命令的文件路径后面加上参数进行传递。

import sys

fi = sys.argv[1]

se = sys.argv[2]

print(fi)

print(se)

"""

%run file.py [a1, a2, .., an] [b1, b2, .., bn]

"""

如果要在 Jupyter 中你想要将脚本导入一个代码单元,可以使用%load魔术函数。

通过Ctrl + C结束运行。

2.27 终端快捷键

Ctrl-P 或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令

Ctrl-N 或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令

Ctrl-R 按行读取的反向历史搜索(部分匹配)

Ctrl-Shift-v 从剪贴板粘贴文本

Ctrl-C 中止当前正在执行的代码

Ctrl-A 将光标移动到行首

Ctrl-E 将光标移动到行尾

Ctrl-K 删除从光标开始至行尾的文本

Ctrl-U 清除当前行的所有文本译注12

Ctrl-F 将光标向前移动一个字符

Ctrl-b 将光标向后移动一个字符

Ctrl-L 清屏

2.2.8 魔术命令

%magic展示

2.2.9 matplotlib集成

在IPython 中,%matplotlib

在Jupyter notebook 中, %matplotlib inline

2.3 Python语言基础

2.3.1.8 鸭子类型

有时候你不关心某个对象是什么类型,你只关心它是否拥有某个特殊的方法或行为。

例如你想验证一个对象是否实现了迭代器协议,那么它必须可以迭代。

def isiterable(obj):

try:

iter(obj)

return True

except TypeError: # 不可遍历

return False

通常在编写接受多种类型输入的函数时,可以使用这些功能。

eg:要接受任意序列类型(列表,元组,n维数组),你可以先判断是否为一个列表(或者为Numpy数组)否则将其转化为列表:

if not isinstance(x, list) and isiterable(x):

x = list(x)

2.3.1.10二元操作符

In [9]: a = [1, 2, 3]

In [10]: b = a

In [11]: c = list(a)

In [12]: a is b

Out[12]: True

In [13]: a is not c

Out[13]: True

值得注意的是list函数总是创建一个新的Python列表(即一份拷贝)。

且is和==是不同的,c is a为False,c == a为True。

还值得注意的是//整除符号。如果需要风格的整除除法(去除非整数部分的小数部分),则可以用整除操作符

2.3.2.2 字符串

字符串是不可以修改的!!

在遇到有大量反斜杠字符串时可以通过添加r"XXX"表明该字符串为原生字符。

字符串格式化,字符串拥有一个format方法。

例如:In [64]: template = '{0 : .2f} {1 : s}, are worth US${2 : d}'。在这字符串中

{0 : .2f} 表示格式化第一个参数为带有两位小数的浮点数。

{1 : s} 表示格式化第二个参数为字符串。

{2 : d} 表示格式化第三个参数为一个整数。

2.3.2.7 日期与时间

熟练掌握两个方法:

第一个strftime将datatime类型转为字符串:

In [102]: from datetime import datetime, date, time

In [103]: dt = datetime(2011, 10, 29, 20, 30, 21)

...

In [108]: dt.strftime('%m/%d/%Y %H:%M')

Out[108]: '10/29/2011 20:30'

strptime 可以将字符串转换成 datetime 对象:

In [109]: datetime.strptime('20091031', '%Y%m%d')

Out[109]: datetime.datetime(2009, 10, 31, 0, 0)

2004510-20200730171444982-1940011944.png

2.3.3.6 三元表达式

语法如下:

value = 'true-expr' if condition else 'false-expr'

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值