一、python
定义:
list:链表,有序的项目, 通过索引进行查找,使用方括号”[]”;
tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找, 使用括号”()”;
dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”{}”;
set:集合,无序,元素只出现一次, 自动去重,使用”set([])”
应用场景:
list, 简单的数据集合,可以使用索引;
tuple, 把一些数据当做一个整体去使用,不能修改;
dict,使用键值和值进行关联的数据;
set,数据只出现一次,只关心数据是否出现, 不关心其位置;
1、list—列表
2、dict --- 字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
访问字典里的值:把相应的键放入熟悉的方括弧
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
二、numpy的数据类型
最常用数据类型是ndarray;
它是一个多维数组,只能存相同类型的数据
每个数据都有一个shape(各维度大小的元组),和一个dtype(说明数组数据类型)。
Data = array([[1,9,6],[2,8,5],[3,7,6]])
Array的元素定位:
随机数生成
* numpy.random模块
* np.random.normal(size=(4,4))生成标准正态分布的4*4样本数组
* seed 确定随机数生成器的种子
* permutation 返回一个序列的随机排列或返回一个随机排列的范围
* shuffle 对一个序列就地随机排列
* rand 产生均匀分布的样本值
* randint 从给定的上下限范围随机取整数
三、pandas数据类型
常用的有两种:Series 和 DataFrame。它们都类似python中的字典dict
1、Series
2、DataFrame
DataFrame是一个表格型数据结构,每列可以是不同的值类型(数值、字符串、布尔值等),它可以被看成由Series组成的字典,它既有行索引也有列索引。以一个或多个二维块存放(而不是列表、字典或别的一维数据结构)
DataFrame的构建方法:
读取文档的方法:
逐块读取文本文件
在处理很大的文件时,可能只想读取文件的一小部分或逐块对文件进行迭代 pd.read_csv(‘ch06/ex6.csv’, nrow=5) 只读取几行 chunker=pd.read_csv(‘ch06/ex6.csv’,chunksize=1000) #设置每次处理行数
Dataframe索引的办法,用示例说明:
dates12 = pd.date_range('20130101',periods=7)
df12= pd.DataFrame(np.arange(28).reshape((7,4)),index=dates12,columns=['A','B','C','D'])
按列索引:
df12['A']、df12.A
按行索引:
df12[0:3]、df12['20130102':]
按标签内容索引: loc
print(df12.loc['20130102'])
print(df12.loc[:,['A','B']])
按位置序号索引: iloc
print(df12.iloc[[3],1:3])
按位置序号和标签内容混合索引: ix
print(df12.ix[:3,['A','C']])
#按条件索引
#Boolean indexing
print(df12[df12.A > 8])
四、TensorFlow
TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表.一个张量有一个静态类型和动态类型的维数.张量可以在图中的节点之间流通.
阶
在TensorFlow系统中,张量的维数来被描述为阶.但是张量的阶和矩阵的阶并不是同一个概念.张量的阶(有时是关于如顺序或度数或者是n维)是张量维数的一个数量描述.比如,下面的张量(使用Python中list定义的)就是2阶.
你可以认为一个二阶张量就是我们平常所说的矩阵,一阶张量可以认为是一个向量.对于一个二阶张量你可以用语句t[i, j]
来访问其中的任何元素.而对于三阶张量你可以用't[i, j, k]'来访问其中的任何元素.
numpy的数组和tensor张量的相互转换:
要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就好处理了。下面一个小程序讲述了将tensor转化为numpy数组,以及又重新还原为tensor:
输出:
五、matplotlib能绘制的常用图形:
直线、曲线:plt.plot(); 坐标系:plt.xlim((-1, 2)),plt.ylim((-2, 3))
坐标系内的标注、批注:plt.annotate(),plt.text()
散点图:plt.scatter(); 柱状图:plt.bar(); 等高线图:plt.contours()
图片:plt.imshow(); 3D数据:ax14 = Axes3D(figure)
一个figure显示多个图:plt.subplot; plt.subplot2grid()
画中画:略; 动画:animation.FuncAnimation