Python numpy(ndarray 随机数组 常用操作 线性方程组和矩阵运算)

来源:互联网 发布:黔马网络 新天下无双 编辑:程序博客网 时间:2024/06/05 07:31
关键词:开源 数据计算扩展
功能:ndarry 多维操作 线性代数
官网:www.numpy.org


安装:

pip install numpy


1、ndarray


import numpy as npdef main():    list = [[1,3,5],[2,4,6]]    print(type(list))    n_list = np.array(list)    print(type(n_list))    n_list = np.array(list,dtype=np.float)    #指定数据类型,bool int int8 int16 int32 int64 int128 uint8 uint16 uint32 ... uint128 float float16 float32 complex64    print(n_list.shape)#(2, 3) 2行3列    print(n_list.ndim)#维数 2    print(n_list.dtype)  # 数据类型 float64    print(n_list.itemsize)#数据元素的大小    print(n_list.size)#数据元素的个数if __name__ == "__main__":    main()


2、一些数组

    print(np.zeros([2,4]))#生成2行4列初值为0的数组    print(np.ones([3,5]))#生成3行5列初值为1的数组    print("Rand:")    #不带n的为服从均匀分布的随机数    print(np.random.rand(2,4)) #生成2行4列初值为0-1之间的随机数的数组    print(np.random.rand())#生成一个0-1之间的随机数    print(np.random.randint(1,10))#生成一个1-10之间的整数    print(np.random.randint(1, 10,3))  # 生成3个1-10之间的整数    print(np.random.randn())  # 生成一个服从标准正态分布的随机数    print(np.random.randn(2,4))  # 生成2行4列服从标准正态分布的随机数    print(np.random.choice([10,20,30])) #生成从指定集合里面选出的随机数    print("Distribute:")    print(np.random.beta(1,10,3))#生成3个服从beta分布的1-10之间的随机数


3、常用操作


print("oprations:")    print(np.arange(1,11))#生成【1,10】之间的数  [ 1  2  3  4  5  6  7  8  9 10]    list2 = np.arange(1,11).reshape([2,5])    print(list2)#将其调整为2行5列  [[ 1  2  3  4  5] [ 6  7  8  9 10]]    print(np.exp(list2))    print(np.exp2(list2))    print(np.sqrt(list2))    print(np.sin(list2))    print(np.log(list2))    list3 = np.array(    [        [            [1,2,3,4],            [4,5,6,7]        ],        [            [7,8,9,10],            [10,11,12,13]        ],        [            [14,15,16,17],            [18,19,20,21]        ]    ])    print(list3.sum())    print(list3.sum(axis=0))    '''    axis=0    [        [1,2,3,4],[4,5,6,7]    ]    +    [        [7,8,9,10],[10,11,12,13]    ]    +    [        [14,15,16,17],[18,19,20,21]    ]    =    [        [1+7+14,2+8+15,3+9+16,4+10+17],[4+10+18,5+11+19,6+12+20,7+13+21]    ]    =    [        [22,25,28,31],[32,35,38,41]    ]    '''    print(list3.sum(axis=1))    '''       axis=1       [           [1,2,3,4],[4,5,6,7]       ]       +       [           [7,8,9,10],[10,11,12,13]       ]       +       [           [14,15,16,17],[18,19,20,21]       ]       =       [            1+4,2+5,3+6,4+7       ]       [            7+10,8+11,9+12,10+13       ]       [            14+18,15+19,16+20,17+21       ]       =        [ 5  7  9 11]        [17 19 21 23]        [32 34 36 38]       '''    print(list3.sum(axis=2))    '''        axis=2       [           [1,2,3,4],[4,5,6,7]       ]       +       [           [7,8,9,10],[10,11,12,13]       ]       +       [           [14,15,16,17],[18,19,20,21]       ]       =       [            [1+2+3+4,4+5+6+7]       ]       [            7+8+9+10,10+11+12+13       ]       [            14+15+16+17,18+19+20+21       ]       =        [10 22]         [34 46]         [62 78]        '''   # print(list3.sum(axis=3))    #报错    print("类似的:")    print(list3.max(axis=1))    print(list3.min(axis=0))    list4 = np.array([1,2,3,4])    list5 = np.array([5,3,2,3])    print("Add")    print(list4 + list5)    print("ub")    print(list4 - list5)    print("Mul")    print(list4 * list5)    print("Div")    print(list4 / list5)    print("Square")    print(list4**2)    print("DOt")    print(np.dot(list4.reshape([2,2]),list5.reshape(2,2)))    print("向array中追加数据")    print(np.concatenate((list4,list5),axis=0))    print(np.vstack((list4,list5)))    print(np.hstack((list4, list5)))    print("拆分array")    print(np.split(list4,2))

4、线性方程组和矩阵运算

print("线性方程组和矩阵运算")    print(np.eye(3))#生成3介单位矩阵    list6 = np.array([        [1.,2.],[3.,4.]    ])    print("矩阵的逆")    print(inv(list6))    print("转置矩阵")    print(list6.transpose())    print("行列式")    print(det(list6))    print("特征值和特征向量")    print(eig(list6))    '''    (array([-0.37228132,  5.37228132]), array([[-0.82456484, -0.41597356],       [ 0.56576746, -0.90937671]]))       第一个array表示特征值,第二个array表示特征向量    '''    print("解方程组")    y = np.array([[5.],[7.]])    print(solve(list6,y))    '''        list6 = np.array([        [1.,2.],[3.,4.]    ])         y = np.array([[5.],[7.]])         即          x1 + 2x2 = 5         3x1 + 4x2 = 7        解得x1=-3 x2=4    '''


5、其它应用

print("信号处理FFT")    print(np.fft.fft(np.array([1,1,1,1,1,1,1,1,1,1,1])))    print("相关系数")    print(np.corrcoef([1,0,1],[0,2,1]))



原创粉丝点击