Python 数据挖掘分析 - 标准库与内置函数

标准库与数据操作

模块

模块即为函数集合的文件, 文件名作为全局的变量(__name__)可以被其他模块导入

1
2
3
4
5
6
7
8
9
10
11
12
# package file PriceAnalysis.py
# 导入全部
import PriceAnalysis
PriceAnalysis.OpenPrice()

# 别名
import PriceAnalysis as prcAnsys
prcAnsys.OpenPrice()

# 导入某个方法
from PriceAnalysis import OpenPrice
OpenPrice()

搜索路径为 os.getcwd() -> sys.path

文件夹必须有 __init__.py 文件, 但内容可以为空, 用以标记文件夹是否为包.

1
2
3
4
5
6
7
8
import mainPkg.subPkg.className
mainPkg.subPkg.className.funcName()

from mainPkg.subPkg import className
className.funcName()

from mainPkg.subPkg.className import funcName
funcName()

定义 __init__.py 支持 import *

1
__all__ = [file1, file2...]

内置模块

数学模块: math(float), cmath(int, float, complex)
时间日期: calendar(获取, 显示), time(计算, 除了, 格式化), datetime.datetime

calendar.isleap(2016)

time.time(): timestamp
time.struct_time((tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)): struct_time
time.localtime(timestamp): strct_time
time.asctime(structTime): str
time.ctime(timestamp): str
time.strptime(YmdStr, YmdTemplate): struct_time 用时间格式模板(例如”%Y-%m-%d”)解析时间字符串(“2018-09-21”)
time.strftime(YmdTemplate, structTime): str 将 struct 对象格式化成指定时间模板

Y/y-m/b/B-d H/I-M-S a/A/w/W/U 年月日 时分秒 星期

datetime.now(): datetime
计算时间差, 返回 datetime.delta 类型, 可与 datetime 类型直接加减运算.
str(dateTime): str
dateTime.strftime(YmdTemplate): str
dateTime.strptime(YmdStr, YmdTemplate): datetime

内置数据类型操作

序列 list, tuple, range + str

x (not) in s 是否在其中
ns = + 链接, s * n 重复
s[i] 取元素
s[i,j,k] 切片, 不包括 j, 步长 k 默认 1
len(), min(), max()
s.index(x, i, j) 索引值, 起点 i 默认 0, 终点 j 默认 len() - 1
s.count(x) 统计

  1. 创建 list([..]) | [..]

s.append(x), s.extend([..]/(..))
s.insert(i, x)
x = s.pop(i) 第 i 个元素默认删最右端
s.remove(x) 删左边第一次出现, 不存在报错, 所以先 count 统计判断
s.sort() s.reverse() 升降序

  1. 创建 tuple((..)) | 逗号 | (..)

列表->元组 tuple(list)
字符串->元组 tuple(str)

值不可变, 无个性化方法

  1. 创建 range(start, end, step)

值不可变, 经常与 for 联合使用.

无法直接查看其中枚举值, 只能将其转换成 tuple/list 查看

range->列表: list(range)
range->元组: tuple(range)

不可以使用 * 进行重复

  1. 创建 str() | “”,’’,””” .. “””

s.split(spliter): list 默认空格分割
str.join(iter): str 组合

s.islower/isupper/istitle()
s.lower/upper/title/capitalize/swapcase()
词频统计, 最好先全部转换成小写, 避免首字母大写造成的问题.

s.find/rfind/index/rindex(x) 不存在 find 返回-1, index 报错
s.startswith/endswith(ns/tpl) 是否以 str, str 元组开头
s.strip/rstrip(rem) 删掉两端/末尾 rem 字符, 默认空白字符

字典

创建 {}, dict({}), dict(k=v,…), dict((k,v),…), dict(zip([keyList], [valueList]))

dic.items(): [(key, value), …]
dic.keys(): [key, …]
dic.values(): [value, …]
可以进行 for in 循环.

查 dic[key], dic.get(key)
改 dic[key] = val, dic.update(key=value)
增 dic[nkey] = val
删 del dic[key]
清空 dic.clear() 删除所有 key, 返回空字典{}
复制 ndic = dic.copy()
合并 ndic = dict(dic1, **dic2)

集合

无序, 不重复, 不能索引. 列表转集合可以去重.

创建可变集合 set() 或 {}
创建不可变集合 frozenset()

可变集合 st.add(v), st.remove(v)
元素个数 len(st)
遍历 for v in st:

交 union |, 并 interaction &, - 差 difference -, 对称差 symmetric_difference ^ (并-交)
子集 issubset <=, 父集 issuperset >=, 无关 isdisjoint

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.