1. Python速成
1)复杂数据类型
三种常用的数据类型:元组、列表、字典。 其中,列表和字典更是经常被使用。
(1)元组:只读集合类型,用小括号定义,初始化后,元组的元素不能重新赋值。
a=(1,2,3)
print(a)
print(a[1])
执行结果如下:
(2)列表 : 列表只能通过中括号定义,列表的元素可以重新赋值。
对列表增加列表项用列表的append()
函数。
b=[4,5,6]
print(b)
b.append(7)
print(b)
print(b[3])
运行结果如下:
(3)字典:可变容器模型,可存储任意类型的对象。字典的每个键值对(key,value)用冒号(:)分隔,每个键值对之间用逗号(,)分隔,整个字典包括在花括号({})中。
mydic={'a':12.15, 'name':True, 'age':'18'}
print('a vales is :%d' %mydic['a'])
print('Keys: %s' %mydic.keys())
print("values :%s" %mydic.values())
for key in mydic:
print(mydic[key])
删除字典中的全部元素,可以用字典自身的clear()方法
若删除字典特定的key元素,用pop(key)方法
mydic={'a':12.15, 'name':True, 'age':'18'}
print(mydic)
#增加字典元素
mydic['e']=1236
print('e vales is :%d' %mydic['e'])
print(mydic)
#删除字典特定的key元素
mydic={'a':12.15, 'name':True, 'age':'18'}
mydic.pop('a')
print(mydic)
#删除字典中的全部元素
mydic.clear()
print(mydic)
2)with语句
语句体(with-body): with 语句包裹起来的代码块,在执行语句体之前会调用上下文管理器的__enter()__
方法,执行完语句体之后会执行__exit()__
方法。
例如对文件进行操作,可使用with语句。
with open('somefileName') as somefile:
for line in somefile:
print(line)
这里使用了with语句,不管在处理文件过程中是否发生异常,都能保证with语句执行完毕后关闭了打开的文件句柄。
如果使用传统的try/finally范式,则要使用如下代码:
扫描二维码关注公众号,回复:
1464368 查看本文章
somefile=open('somefileName')
try:
for line in somefile:
print(line)
finally:
somefile.close()
2.NumPy速成
1)创建数组
利用NumPy创建多为数组非常简单,通过给array函数传递Python的序列对象创建数组。如果传递的是多层嵌套的序列,将创建多维数组。
#创建一维数组
import numpy as np
myarray=np.array([1,2,3])
print(myarray)
print(myarray.shape)
创建多维数组
import numpy as np
# 创建多维数组
myarray=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(myarray)
print(myarray.shape)
2)访问数组
对于ndarray数组的访问,可以通过数组下表访问某一行、某一列:
import numpy as np
#创建多维数组
myarray=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(myarray)
print(myarray.shape)
#访问某一行
print('这是第一行:%s' %myarray[0])
print('这是最后一行:%s' %myarray[-1])
print('访问整列(3列)数据:%s'%myarray[:,2])
print('访问指定行(2行)和列(3列)的数据:%s'%myarray[1,2])
3)算数运算
使用NumPy的ndarray可以直接进行算数运算,或者说向量运算。
import numpy as np
#创建多维数组
myarray1=np.array([[1,2,3],[4,5,6],[7,8,9]])
myarray2=np.array([[11,22,32],[42,52,62],[72,82,92]])
print('向量加法运算:')
print(myarray1+myarray2)
print('向量乘法运算:')
print(myarray1*myarray2)
3 matplotlib速成
matplotlib是Python中著名的2D绘图库。
- 调用plot()、scatter() 等方法, 并为绘图填充数据。数据是NumPy的ndarray类型的对象。
- 设定数据标签,使用xlabel()、ylabel()方法;
- 展示绘图结果,使用show()方法。
(1)绘制线条图
import matplotlib.pyplot as plt
import numpy as np
#创建多维数组
myarray=np.array([[1,2,3],[4,5,6],[7,8,9]])
#初始化绘图
plt.plot(myarray)
#设定x轴和y轴
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()
(2)绘制散点图
import matplotlib.pyplot as plt
import numpy as np
#创建多维数组
myarray1=np.array([1,2,3])
myarray2=np.array([11,21,31])
#初始化绘图
plt.scatter(myarray1,myarray2)
#设定x轴和y轴
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()
4 Pandas速成
Pandas提供了用于机器学习的复杂数据类型:矢量运算方法和数据分析方法。Pandas也提供可多种数据结构。
Pandas是一个强大的对数据进行切片的工具。
- Series:一位数组,与NumPy中的一维array类似。二者与Python中的基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而array和Series中只允许存储相同的数据类型——更有效地使用内存、提高运算效率。
- Time-Series: 以时间为索引的Series;
- DataFrame: 二维的表格型数据结构;可以理解为Series的容器。
- Panel: 三维数组,可以理解为DataFrame的容器。
(1)Series
在建立Series时可以设定index, 也可以像访问NumPy数组或字典一样来访问Series元素。
import numpy as np
import pandas as pd
myarray=np.array([1,2,3])
myindex=['a','b','c']
myseries=pd.Series(myarray,index=myindex)
print(myseries)
print("Series中的第一个元素:")
print(myseries[0])
print("Series中的c index 元素:")
print(myseries['c'])
(2)DataFrame
DataFrame是一个可以指定行和列标签的二维数组。数据可以通过指定列名来访问特定列的数据。
import numpy as np
import pandas as pd
myarray=np.array([[1,2,3],[4,5,6],[7,8,9]])
rowindex=['row1','row2','row3']
colname=['col1','col2','col3']
MyDataframe=pd.DataFrame(data=myarray,index=rowindex, columns=colname)
print(MyDataframe)
print('访问col3的数据:')
print(MyDataframe['col3'])