数据科学入门
1.理解基本的字符串
大小写转换函数返回原始字符串的S的一个副本:lower()函数将所有字符转换成小写字母,upper()函数将所有字符转换成大写;
capitalize()将函数的第一个字母转换成大写,同时将其他所有字符转换成小写。
islower():检查所有字母字符是否为小写,isupper()检查所有字母字符是否为大写;issapce()检查所有字母字符是否为空格;isdigit()检查所有字符是否为数字;isalpha()检查所有字符是否为字母。
python 用符号b来标识二进制。
bin=b"Hello"
bin[0]
72
s='Hello'
s[0]
'H'
bin.decode() #将二进制转化成字符串
'Hello'
s.encode() #将二进制转化成字符串
b'Hello'
字符串的处理第一步是去除不需要的空白(包括换行和制表符)。函数lstrip()(left strip)、rstrip()(right strip)和strip()分别是在字符串的开始处、结束处或对整个字符串删除所有的空格(不删除字符串内部空格)。
" Hello, world! \t\t\n".strip()
'Hello, world!'
'Hello , world!'.split(',') #将字符串以','分隔并存为列表
['Hello ', ' world!']
','.join(['hello','world','huai','xun']) #将字符串列表连接在一起
'hello,world,huai,xun'
'-'.join(['1997','10','06'])
'1997-10-06'
'sdshfj.jdhsjjfh.43iweud.com'.find('.com') #find(needle)返回字符串中子串needle第一次出现的索引
23
'sdshfj.jdhsjjfh.43iweud.com'.count('.') #返回.在字符串中出现的次数
3
2.选择适合的数据结构
列表、元组、集合和字典
列表推导式
mylist=[1,3,5,7,9]
[x for x in mylist] #复制列表,等价于mylist.copy()
[1, 3, 5, 7, 9]
[x for x in mylist if x>=0] #提取非负项
[1, 3, 5, 7, 9]
[x**2 for x in mylist]
[1, 9, 25, 49, 81]
[1/x for x in mylist if x!=0]
[1.0, 0.3333333333333333, 0.2, 0.14285714285714285, 0.1111111111111111]
使用计数器
计数器是一种字典的集合,用于给一个项目集合计数。计数器定义在collections模块中的构造函数Counter中,使用most_common(n)来获取n个出现频率最高的项,没有提供参数n时,将返回一个针对所有项目的列表。
from collections import Counter
phrase='Hello huaixun i miss you so much and you too i like you so much Hello haha'
count=Counter(phrase.split())
count.most_common(4)
[('you', 3), ('Hello', 2), ('i', 2), ('so', 2)]
coundic=dict(count.most_common())
coundic
{'you': 3,
'Hello': 2,
'i': 2,
'so': 2,
'much': 2,
'huaixun': 1,
'miss': 1,
'and': 1,
'too': 1,
'like': 1,
'haha': 1}
使用文件
文件是用于长期存储数据的非易失性容器。与文件相关的操作包括打开文件,从文件中读取数据或者将数据写入文件,以及关闭文件。可以打开文件进行读取(‘r’)、写入(‘w’)或者追加(‘a’)。
f=open(name,mode=‘r’)
<>
f.close()
with open(name,moder=‘r’) as f:
f.read() #以字符串或者二进制的方式读入所有数据
f.read()#读取前n个字节数据
f.readline()#以字符串的形式读入下一行
f.readlines()#以字符串的形式读取所有行
f.write(line) #将字符串或者二进制写入文件
f.writelines(lines)#写入字符串数据列表
with open('测试文本.txt','a') as f:
#L=f.readlines()
f.write('what is you name?')
with open('测试文本.txt','r') as f:
L=f.readline()
L
'what is you name?what is you name?what is you name?'
上网
urllib.request模块包含从web下载数据的函数。无论要从web上获取什么,第一步都是用urlopen(url)打开网址,获取打开网页的句柄。接下来就可以使用 进行读取解析等操作。通过使用函数:read(),readline(),readlines()访问数据。
import urllib.request
try:
with urllib.request(url) as doc:
html=doc.read()
except:
print(‘could not open %s’%doc,file=sys.err)
当数据集部署在在需要验证身份的网站上时,就不能使用urlopen()函数,此时应该使用提供的安全套接层(SSL,例如OpenSSL)的模块。
urllib.parse模块提供了用于解析和构造网址的友好工具。函数urlparse()函数将网址分成六个元素的元组:协议,网络地址,文件参数路径,参数,查询和片段。
import urllib.parse
url='http://networksciencelab.com/index.html;param?foo=bar#content'
urllib.parse.urlparse(url)
ParseResult(scheme='http', netloc='networksciencelab.com', path='/index.html', params='param', query='foo=bar', fragment='content')