Python numpy

来源:互联网 发布:预备党员网络课程心得 编辑:程序博客网 时间:2024/05/18 06:27

Python数据计算numpy

>>> import numpy as np>>> #array>>> data=[1,3,4,5]>>> type(data)<class 'list'>#array()产生矩阵对象>>> arr=np.array(data)>>> arrarray([1, 3, 4, 5])>>> type(arr)<class 'numpy.ndarray'>>>> dat=[[1,0,0],[0,1,0],[0,0,1]]>>> dat[[1, 0, 0], [0, 1, 0], [0, 0, 1]]>>> arr=np.array(data)>>> arrarray([1, 3, 4, 5])>>> arr=np.array(dat)>>> arrarray([[1, 0, 0],       [0, 1, 0],       [0, 0, 1]])>>> arr.shape(3, 3)>>> arr.dtypedtype('int32')#arange>>> np.arange(3,7)array([3, 4, 5, 6])>>> np.arange(3,7,2)array([3, 5])#eye>>> np.eye(4,k=1)array([[ 0.,  1.,  0.,  0.],       [ 0.,  0.,  1.,  0.],       [ 0.,  0.,  0.,  1.],       [ 0.,  0.,  0.,  0.]])#T>>> arr.Tarray([1, 2, 3, 4])>>> arr=[[3,3,4,2],[3,4,5,6]]>>> arr[[3, 3, 4, 2], [3, 4, 5, 6]]>>> arr1=np.array(arr)>>> arr1array([[3, 3, 4, 2],       [3, 4, 5, 6]])>>> arr1.Tarray([[3, 3],       [3, 4],       [4, 5],       [2, 6]])#dot>>> arr1array([[3, 3, 4, 2],       [3, 4, 5, 6]])>>> np.dot(arr1,arr1.T)array([[38, 53],       [53, 86]])>>> np.dot(arr1.T,arr1)array([[18, 21, 27, 24],       [21, 25, 32, 30],       [27, 32, 41, 38],       [24, 30, 38, 40]])#数据运算array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> np.square(arr)array([ 0,  1,  4,  9, 16, 25, 36, 49, 64, 81], dtype=int32)>>> np.log(arr)array([       -inf,  0.        ,  0.69314718,  1.09861229,  1.38629436,        1.60943791,  1.79175947,  1.94591015,  2.07944154,  2.19722458])>>> np.ceil(1)1.0>>> np.ceil(5)5.0>>> arrarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> np.ceil(4.6)5.0>>> np.floor(4.6)4.0>>> np.rint(np.log(arr))array([-inf,   0.,   1.,   1.,   1.,   2.,   2.,   2.,   2.,   2.])#双目运算>>> np.add(arr,np.log(arr))array([        -inf,   1.        ,   2.69314718,   4.09861229,         5.38629436,   6.60943791,   7.79175947,   8.94591015,        10.07944154,  11.19722458])>>> arrarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> np.add(arr,5)array([ 5,  6,  7,  8,  9, 10, 11, 12, 13, 14])>>> arrarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])#meshgrid>>> x=np.arange(1,4,1)>>> xarray([1, 2, 3])>>> y=np.arange(10,15,1)>>> yarray([10, 11, 12, 13, 14])>>> X,Y=np.meshgrid(x,y)>>> Xarray([[1, 2, 3],       [1, 2, 3],       [1, 2, 3],       [1, 2, 3],       [1, 2, 3]])>>> Yarray([[10, 10, 10],       [11, 11, 11],       [12, 12, 12],       [13, 13, 13],       [14, 14, 14]])>>>#[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,>>>#这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。>>>#其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。>>>#[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,>>>#这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。>>>#其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。#where>>> x=np.arange(10)>>> xarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> y=np.arange(-9,1,1)>>> yarray([-9, -8, -7, -6, -5, -4, -3, -2, -1,  0])>>> cond=np.array([True,False,True,False,True,False,True,False,True,False])>>> np.where(cond,x,y)array([ 0, -8,  2, -6,  4, -4,  6, -2,  8,  0])>>> np.where(x>0,1,-1)array([-1,  1,  1,  1,  1,  1,  1,  1,  1,  1])>>> np.where(y<0,1,-1)array([ 1,  1,  1,  1,  1,  1,  1,  1,  1, -1])#计算>>> arr=np.random.randn(5,4)>>> arrarray([[-1.56699351,  0.0367636 ,  0.47858635, -1.21582486],       [-0.66492923,  1.48287249,  1.38008138,  1.92236202],       [ 1.18952338,  1.21554153, -0.371991  ,  1.22583606],       [-0.86845156,  0.32021784, -0.97300478,  0.63786163],       [-0.07806264,  1.04740613,  2.4356263 ,  0.38637222]])>>> arr.mean()0.40098966781551437>>> np.mean(arr)0.40098966781551437>>> arr.sum<built-in method sum of numpy.ndarray object at 0x00000000082747B0>>>> arr.sum()8.0197933563102879>>> arr.mean(axis=1)array([-0.56686711,  1.03009666,  0.81472749, -0.22084422,  0.9478355 ])>>> #线性代数>>> from numpy.linalg import inv,qr,det>>> X=np.array([[1,2],[3,8]])>>> Xarray([[1, 2],       [3, 8]])>>> X.T.dot(X)array([[10, 26],       [26, 68]])>>> MAT=X.T.dot(X)>>> MATarray([[10, 26],       [26, 68]])>>> inv(MAT)array([[ 17. ,  -6.5],       [ -6.5,   2.5]])>>> det(MAT)4.000000000000079>>> q,r=qr(MAT)>>> qarray([[-0.35897908, -0.93334561],       [-0.93334561,  0.35897908]]) #读写文件