Numpy学习2

载入数据和保存数据

In [34]: arr = np.loadtxt("/home/hadoop/wujiadong/np.txt")
In [35]: np.save("/home/hadoop/wujiadong/np_out.txt",arr)

数学运算

nump.dot:矩阵乘法运算
numpy.transponse:矩阵转置

求解方程组

In [39]: a = np.array([[3,6,-5],[1,-3,2],[5,-1,4]])
In [40]: b = np.array([12,-2,10])
In [41]: x = np.linalg.inv(a).dot(b)
In [42]: x
Out[42]: array([ 1.75,  1.75,  0.75])

In [43]: a
Out[43]: 
array([[ 3,  6, -5],
       [ 1, -3,  2],
       [ 5, -1,  4]])
       
In [44]: b
Out[44]: array([12, -2, 10])
In [61]: d1 = np.array([[1,2,3,4],[5,6,7,8]])

In [62]: d1
Out[62]: 
array([[1, 2, 3, 4],
       [5, 6, 7, 8]])

In [63]: d2 = np.random.random((4,2))

In [64]: d2
Out[64]: 
array([[ 0.33936881,  0.02394269],
       [ 0.55151109,  0.70094196],
       [ 0.04284826,  0.80405587],
       [ 0.59282838,  0.94140771]])

In [65]: d1.dot(d2)
Out[65]: 
array([[  3.94224929,   7.60362506],
       [ 10.04847544,  17.48501797]])

In [66]: d2.T
Out[66]: 
array([[ 0.33936881,  0.55151109,  0.04284826,  0.59282838],
       [ 0.02394269,  0.70094196,  0.80405587,  0.94140771]])

In [68]: np.linalg.inv(d2.T.dot(d2))
Out[68]: 
array([[ 3.43382891, -1.67438636],
       [-1.67438636,  1.31036906]])
       
       
##对矩阵d2进行奇异值分解 :d2=u*s*h
In [70]: u,s,h = np.linalg.svd(d2)

In [71]: u
Out[71]: 
array([[-0.11515737,  0.59645451,  0.74476033, -0.27624781],
       [-0.54915702,  0.30352265, -0.53710331, -0.5637558 ],
       [-0.45256189, -0.73026033,  0.3934938 , -0.32721586],
       [-0.69307509,  0.13724381,  0.04488564,  0.70625514]])

In [72]: s
Out[72]: array([ 1.60238234,  0.47920264])

In [73]: h
Out[73]: 
array([[-0.48191562, -0.87621763],
       [ 0.87621763, -0.48191562]])
       
posted @ 2017-03-13 21:42  邬家栋  阅读(193)  评论(0编辑  收藏  举报