首页 > 代码库 > 数据的处理验证(2)
数据的处理验证(2)
# -*- coding: cp936 -*-
import numpy as np
import copy
import numpy.linalg as nplg
a=np.array([2,5,3])#这样的方法适用于数组自带的方法,在numpy中不适用
print a.sum()
print a.min()
#试着嵌套构成新的数组
new=np.array ([a.max(),a.min()])
print new
#找到,每一列的最大值
print a.sum(axis=0)
#此方法在numpy中使用,axis:轴
a=2
print np.sin (a)
print np.exp(a)
#矩阵的自乘
np.dot(a,a)
a=np.ones((2,2))
b=np.eye (2)
#这个时候c就是四行两列的,vstack意味着是把a和b进行数据的堆叠
print np.vstack ((a,b))
#hstack意味着把数据进行拼接,在a数据的后面拼接b数据
c=np.hstack ((a,b))
print c
a[1,1]=5
b[1,1]=5
print c
#此处涉及数组的浅层拷贝和深层拷贝,会改变数组的值
#重新声明数组
a=np.ones((2,2))
b=a
#此处用的是赋值is
print b is a
#浅拷贝,没有拷贝子对象,所以随着原始数据改变,子对象也会改变
c=a.copy()
print c is a
#此处的深拷贝包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变
#PS:对于深拷贝和浅拷贝,之后还会有个人更深层的理解和验证
c=copy.deepcopy(a)
print c is a
#进阶,矩阵的运算,在显示的形式上面数组和矩阵的最大的差别就是,数组的元素之间用点进行了隔开,但是矩阵没有进行隔开
#若是需要对矩阵进行运算之类的更多的操作进引入numpy.linalg包
a=np.array ([[1,0],[9,8]])
print a
z=np.array([[1,2,3,4,5,5]])
print z
print "----------------------------"
#矩阵的转置用的是transpose方法
print a.transpose()
#对矩阵的迹进行显示,在数学上的表示方法是tr(a),意思是主对角线上元素的和
print np.trace (a)
#可以通过eig方法进行求得矩阵的特征值和特征向量
print nplg.eig(a)
数据的处理验证(2)