Chapter4-4 用于数组的文件输入和输出 Chapter4-5 线性代数

来源:互联网 发布:网络电视这么切换有线 编辑:程序博客网 时间:2024/04/29 17:07
'''
Chapter4-4 用于数组的文件输入和输出
Chapter4-5 线性代数

索引:
1.将数据以二进制形式保存到磁盘(默认是无压缩的)
    np.save(filename,data)将data保存为二进制filename.npy
    np.savez(filename,a=arr1,b=arr2)存为压缩文件filename.npz
    np.load(filemname)读取filename(对npz文件和npy文件的读取结果结构不同)
2.存取文本文件#只讲简单的内容,更多时候用到的是pandas(下一章的内容)
3.x.dot(y)==np.dot(x,y)(数学意义上的矩阵相乘)
4.numpy.linalg中有些矩阵分解运算的方法,如求逆,求行列式等
5.常用函数列表



Created on 2016年12月19日

@author: Bigboy

'''

实践内容:

#-*- coding:utf-8-*-import numpy as np#1----------------------------------------------------------------------------arr = np.arange(10)np.save('d:/arrdata', arr)#可以指定路径,默认是当前工作路径,就是当前模块的存储的路径#保存时结尾会加上.npy,是二进制文件data = np.load('arrdata.npy')#读出放在数组中print data'''out:[0 1 2 3 4 5 6 7 8 9]'''arr1 = np.arange(10,20)np.savez('dataz',a=arr,b=arr1)#这里数据存储在压缩文件datax.npz中,#参数a b 的意思是把名为arr和arr1的两个数组存在dataz.npz中arch = np.load('dataz.npz')#arch存的是读到的dataz的所有信息,但是类似于字典的结构#可用如下方式访问print arch['a']print arch['b']'''out:[0 1 2 3 4 5 6 7 8 9][10 11 12 13 14 15 16 17 18 19]'''#2-------------------------------------------------------------------------------arr = np.loadtxt('test.txt',delimiter=',')print arr '''out:[[ 0.580052  0.18673   1.040717  1.134411] [ 0.194163 -0.636917 -0.938659  0.124094] [-0.12641   0.268607 -0.695724  0.047428] [-1.484413  0.004176 -0.744203  0.005487] [ 2.302869  0.200131  1.670238 -1.88109 ] [-0.19323   1.047233  0.482803  0.960334]]'''#3--------------------------------------------------------------------------------arr1 = np.array([[1,2,3],[4,5,6],[7,8,9]])arr2 = np.array([[1,1],[1,1],[1,1]])#print arr1*arr2#对应元素相乘,两个阵的结构必须一样,这里两个矩阵的维度不一样,会报错print arr1.dot(arr2)#arr1与arr2相乘print np.dot(arr1,arr2)#4--------------------------------------------------------------------------------from numpy.linalg import inv, qr,solvearr1 = np.random.randn(3,3)print arr1#print arr1.T#返回转置后的矩阵,但是arr本身不变print inv(arr1.T.dot(arr1))#矩阵求逆(保证是方阵)print qr(arr1)#QR分解得到两个矩阵'''out:[[-0.15596411  0.07390067  0.07783746] [ 0.05810221  1.57415662 -0.67944777] [ 1.7033188  -1.94571772 -0.51524658]] [[ 4522.54316833  2391.11585043  5931.75577862] [ 2391.11585043  1264.36758533  3136.1946318 ] [ 5931.75577862  3136.1946318   7781.44037243]] (array([[-0.09113083,  0.05985673,  0.9940384 ],       [ 0.03394949, -0.99742498,  0.06317305],       [ 0.99526007,  0.03950411,  0.08886406]]),array([[ 1.71143086, -1.88978796, -0.54296465],       [ 0.        , -1.64254353,  0.66200292],       [ 0.        ,  0.        , -0.01133627]]))'''A = [[1,0,0],[0,1,0],[0,0,1]]B = [1,1,1]print solve(A,B)#solve解方程AX=B,接受两参数A和B#当没有解时可用最小二乘解lstsq()'''out:[ 1.  1.  1.]'''
函数备忘:











0 0
原创粉丝点击