大数据,机器学习,人工智能人工智能/模式识别/机器学习精华专题深度学习-推荐系统-CV-NLP

《利用Python进行数据分析-第二版》2

2019-07-12  本文已影响1人  皮皮大

第二章 Python语法 和 jupyter基础

常用库及命名

下面均为各种库的常用命名方式

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import statsmodels as sm
data = {i : np.random.randn() for i in range(7)}   # 类似于python字典生成式
data

结果

{0: -0.9009056139906951,
 1: -1.581682352812691,
 2: -0.5608536001755129,
 3: -1.2634011018284566,
 4: 0.4831433069203416,
 5: -0.2650450765907828,
 6: -0.7770227536257971}
%pwd   #打印当前路径

'D:\\Python\\datalearning\\Python for data analysis'

补全功能

an_apple = 27
an_orange = 42
an   # 按下tab键会自动补全
image.png
b = [1, 2, 3]
b.   # 按下tab键,补全对象b的各种方法和属性
image.png
import datetime
datetime.  # 按下tab键
image.png
"D://python/datalearning/Python for data analysis"  # 路径补全

自省

使用问号?可以进行自省功能

b = [1, 3, 4]
b?
image.png
def add_number(a, b):
    return a + b

add_number?      #  一个问号:显示相关属性
add_number??    #  两个问号:显示源码
image.png image.png

?问号的另一个功能:配合字符串匹配所有的名字

np.*load*?  # 星号代表所有,问号代表匹配

image.png

魔术命令

魔术命令是指在命令前面加上%前缀

%pwd
'D:\\Python\\datalearning\\Python for data analysis'

%run test.py   # 直接运行py文件

xiaoming
the age is 28
180
the boy`s hair yellow
# %load test.py
#!/user/bin/env python
# user:peter

class Person:
    def __init__(self, name):   # 初始化方法
        self.name = name   # 定义一个属性name的值是name
        
    def age(self, n):   # age方法必须传入一个参数
        return "the age is {}".format(n)
    
class Boy:
    height = 180
    def color(self):
        return "the boy`s hair yellow"
    
class TallBoy(Person, Boy):
    pass

if __name__ == "__main__":
    boy = TallBoy("xiaoming")
    print(boy.name)
    print(boy.age(28))
    print(boy.height)
    print(boy.color())

结果

xiaoming
the age is 28
180
the boy`s hair yellow

快捷键说明

image.png
a = np.random.randn(100, 100)
%timeit np.dot(a, a)   # 计算执行时间
156 µs ± 41.7 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
%debug?

自动魔术:魔术函数默认不需要百分号,只要没有变量和函数名相同,用%atuomagic打开或者关闭

foo = %pwd   #   当做变量进行赋值
foo

'D:\\Python\\datalearning\\Python for data analysis'
image.png
%matplotlib   #运行魔术命令,进行配置
Using matplotlib backend: TkAgg

%matplotlib inline    # 绘图中这句话一定要导入
import matplotlib.pyplot as plt
plt.plot(np.random.randn(50).cumsum())

[<matplotlib.lines.Line2D at 0x25411171ba8>]


image.png

Python语言特点

Python语言具有如下特点:

a = 5
isinstance(a, int)   # True

a, b = 4, 5.5
isinstance(a, (int, float))   # 通过元组的形式判断,对象类型是否在元组中   True

鸭子类型

def isiterable(obj):  # 判断某个对象是否是可迭代的
    try:
        iter(obj)
        return True
    except TypeError:   # not iterable
        return False

isiterable(" hello python")   # True
isiterable(5)  # False

# 下面实现检验对象是否是列表或者numpy数组,如果不是转成列表:
if not isinstance(x, list) and isiterable(x):   # 判断是否是列表且对象是可迭代
    x = list(x)   # 转成列表形式

模块引入

在Python中模块就是.py扩展名和包含Python代码的文件

#   some_module.py
PI = 3.14159   # 模块的变量PI
def f(x):   # 模块的两个函数即方法
    return x + 2
def g(a, b):
    return a + b

如何调用

import some_module   # 导入文件
result = some_module.f(5)   # 模块的属性,并且传入一个参数
pi = some_module.PI

# 或者另一种导入方式
from some_module import f, g, PI
result = g(5, PI)

# 还可以使用as起别名
import some_module as sm
from some_module import PI as pi, g as gf

r1 = sm.f(pi)
r2 = gf(6, pi)

标量类型

Python的标准库中有一些内建的类型,用以处理数值数据、字符串、布尔值和日期时间等,这种单值 类型称之为标量类型。常用的标量如下:

类型 作用
None python的空值,只存在一个None对象的实例
str 字符串类型
bytes 原生ASCII字节
float 双精度64位浮点数
bool True或者False
int 任意精度的整数
上一篇下一篇

猜你喜欢

热点阅读