#encoding:utf8'''pandas是python里分析结构化数据的工具集依赖于 numpy:高性能矩阵运算 matplotlib:提供数据可视化 结构化数据分析 数据挖掘'''#numpy简介import numpy as np#创建一维数组data = np.array([1,3,4,8])print dataprint data.shapeprint data.dtypeprint data[0]print data[1]data[1] = 9print data#二维数组data = np.array([[1,2,3],[4,5,6]])print data#2行3列print data.shapeprint np.arange(10)print np.arange(5,15)data = np.arange(10)print data.reshape(2,5)#原数据不会改变,只是引用不是拷贝#维度自己定义#全0数组print np.zeros((2,2))print np.zeros((1,2))#全1数组print np.ones((2,3,3))#对角线数组print np.eye(4)#把数组转换为需要的维度print np.arange(16).reshape(4,4)#设置步长print np.arange(100,step=10)#元素的访问data = np.arange(100,step=10)print data[2]print data[2:5]print data[:3]#包含前不包含后从0号元素到2号元素print data[5:]#从第五号元素到最后一个元素data[5:] = -1print data#多维数组索引data = np.arange(16).reshape(4,4)print dataprint data[1]#显示第二号元素也就是第二行print data[1:3]#显示第二号到第三号元素也就是第二行和第三行print data[:,2:4]#显示每一行第三列和第四列print data[3:,2:4]#显示第四行的第三列和第四列print data[1:3,2:4]#显示第二行到第三行的第三列和第四列#通过数组索引来定位元素print data[[1,3],[2,3]]#首先确定了取2个元素,然后第一个元素是第二行第三列,第二个元素是第四行第四列#最后结果显示是bool值也是原数据的结构只是把表达式的true和false显示出来print data > 10#技巧idx = data > 10print data[idx]#只会选择出true的值print data[data > 10]print data[data%2 == 0]x = np.arange(1,5).reshape(2,2)y = np.arange(5,9).reshape(2,2)print x + y #元素对位相加print x - yprint x * yprint x / yprint np.add(x,y)#转换元素类型x = np.array(x,dtype=float)y = np.array(y,dtype=float)print x/y#求平方根print x,yprint np.sqrt(x)#从一个区间中划分#从1到10划分5个其中起始和结尾是1和10中间是随机数但是总共只能5等份print np.linspace(1,10,num=5)x = np.linspace(0,2*np.pi,num=50)y = np.sin(x)