numpy矩阵的基础操作3

    xiaoxiao2021-03-25  80

    import numpy as np a = np.arange(3) print (a) print (np.exp(a)) #e的0,1,2次幂 print (np.sqrt(a))#开根号 [0 1 2] [ 1. 2.71828183 7.3890561 ] [ 0. 1. 1.41421356] a = np.floor(10*np.random.random((3,4))) #floor是向下取整 print (a) print (a.shape) a.shape = (6,2) #可将其变为6行,2列 a.resize((3,4)) #可将其变成3行,4列,效果与shape意义 print (a) print (a.T) #转制,即行变列,列变行 [[ 5. 6. 3. 3.] [ 0. 4. 9. 1.] [ 7. 3. 3. 5.]] (3, 4) [[ 5. 6. 3. 3.] [ 0. 4. 9. 1.] [ 7. 3. 3. 5.]] [[ 5. 0. 7.] [ 6. 4. 3.] [ 3. 9. 3.] [ 3. 1. 5.]] a = np.floor(10*np.random.random((2,2))) b = np.floor(10*np.random.random((2,2))) print (a) print ('.....') print (b) print ('.....') print (np.hstack((a,b))) #水平相接 print ('.....') print (np.vstack((a,b))) #垂直相接 [[ 1. 7.] [ 7. 2.]] ..... [[ 5. 0.] [ 0. 1.]] ..... [[ 1. 7. 5. 0.] [ 7. 2. 0. 1.]] ..... [[ 1. 7.] [ 7. 2.] [ 5. 0.] [ 0. 1.]] a = np.floor(10*np.random.random((2,12))) print (a) print (".....") #hsplit对应的垂直方向是vsplit print (np.hsplit(a,3)) #水平方向切成3个 print (".....") print (np.hsplit(a,(3,4))) #水平方向下标为3处切以下,4处切一下 [[ 7. 7. 4. 1. 0. 5. 3. 5. 5. 0. 2. 7.] [ 4. 4. 6. 8. 4. 9. 0. 7. 4. 8. 6. 2.]] ..... [array([[ 7., 7., 4., 1.], [ 4., 4., 6., 8.]]), array([[ 0., 5., 3., 5.], [ 4., 9., 0., 7.]]), array([[ 5., 0., 2., 7.], [ 4., 8., 6., 2.]])] ..... [array([[ 7., 7., 4.], [ 4., 4., 6.]]), array([[ 1.], [ 8.]]), array([[ 0., 5., 3., 5., 5., 0., 2., 7.], [ 4., 9., 0., 7., 4., 8., 6., 2.]])] a = np.arange(12) b = a #指向相同的内存 print (b is a) print (id(a)) print (id(b)) True 2083589900448 2083589900448 c = a.view() #新创建一个对象,内存地址已经不同,但是数据仍然共享,属于浅copy print (c is a) print (id(a)) print (id(c)) a[0]=99 print(a) #数据a,b都发送变化 print(b) False 2083589900448 2083589901088 [99 1 2 3 4 5 6 7 8 9 10 11] [99 1 2 3 4 5 6 7 8 9 10 11] d = a.copy() #深copy,a,b对象不同,数据也不同 d[0] = 100 print (a) print (d) [99 1 2 3 4 5 6 7 8 9 10 11] [100 1 2 3 4 5 6 7 8 9 10 11]
    转载请注明原文地址: https://ju.6miu.com/read-34032.html

    最新回复(0)