python的数据分析(2)

来源:互联网 发布:apache nginx 比较 编辑:程序博客网 时间:2024/06/07 00:46

-- 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)

原创粉丝点击