zoukankan      html  css  js  c++  java
  • numpy学习

    numpy学习

    In [8]:
    import numpy as np
    array = np.array([[1,2,3],
                     [2,3,5]])
    print(array)
    
     
    [[1 2 3]
     [2 3 5]]
    
    In [9]:
    array.ndim
    
    Out[9]:
    2
    In [10]:
    array.shape
    
    Out[10]:
    (2, 3)
    In [11]:
    array.size
    
    Out[11]:
    6
    In [17]:
    a=np.array([1,2,3],dtype=np.int)
    print(a)
    print(a.dtype)
    b=np.array([1,2,3],dtype=np.float)
    print(b)
    print(b.dtype)
    
     
    [1 2 3]
    int32
    [ 1.  2.  3.]
    float64
    
    In [19]:
    array0 = np.zeros((3,4))
    print(array0)
    
     
    [[ 0.  0.  0.  0.]
     [ 0.  0.  0.  0.]
     [ 0.  0.  0.  0.]]
    
    In [21]:
    array1 = np.ones((3,4))
    print(array1)
    
     
    [[ 1.  1.  1.  1.]
     [ 1.  1.  1.  1.]
     [ 1.  1.  1.  1.]]
    
    In [23]:
    array2 = np.empty((3,4))
    print(array2)
    
     
    [[ 0.  0.  0.  0.]
     [ 0.  0.  0.  0.]
     [ 0.  0.  0.  0.]]
    
    In [24]:
    array3 = np.arange(10,20,2)
    print(array3)
    
     
    [10 12 14 16 18]
    
    In [26]:
    array4 = np.arange(12).reshape((3,4))
    print(array4)
    
     
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    
    In [27]:
    array5 = np.linspace(1,10,25)
    print(array5)
    
     
    [  1.      1.375   1.75    2.125   2.5     2.875   3.25    3.625   4.
       4.375   4.75    5.125   5.5     5.875   6.25    6.625   7.      7.375
       7.75    8.125   8.5     8.875   9.25    9.625  10.   ]
    
    In [30]:
    array6 = np.linspace(1,10,12).reshape((3,4))
    print(array6)
    
     
    [[  1.           1.81818182   2.63636364   3.45454545]
     [  4.27272727   5.09090909   5.90909091   6.72727273]
     [  7.54545455   8.36363636   9.18181818  10.        ]]
    
    In [38]:
    a=np.array([10,20,30,40])
    b=np.arange(4)
    c=a-b
    print(c)
    
     
    [10 19 28 37]
    
    In [34]:
    c=b**3
    print(c)
    
     
    [ 0  1  8 27]
    
    In [35]:
    c=10*np.sin(a)
    print(c)
    
     
    [-5.44021111  9.12945251 -9.88031624  7.4511316 ]
    
    In [36]:
    print(b)
    print(b<3)
    print(b==3)
    
     
    [0 1 2 3]
    [ True  True  True False]
    [False False False  True]
    
    In [44]:
    a=np.array([[1,2,3],[3,4,5]])
    b=np.arange(6).reshape((3,2))
    print(a)
    print(b)
    #c=a*b
    c_dot=np.dot(a,b)
    print(c_dot)
    c_dot2=a.dot(b)
    print(c_dot2)
    
     
    [[1 2 3]
     [3 4 5]]
    [[0 1]
     [2 3]
     [4 5]]
    [[16 22]
     [28 40]]
    [[16 22]
     [28 40]]
    
    In [50]:
    a=np.random.random((2,4))
    print(a)
    print(np.sum(a))
    print(np.max(a))
    print(np.min(a))
    
     
    [[ 0.4601967   0.93594758  0.5499286   0.41483107]
     [ 0.5729537   0.04874679  0.26190708  0.5702891 ]]
    3.81480060629
    0.935947580711
    0.0487467894088
    
    In [52]:
    a=np.random.random((2,4))
    print(a)
    print(np.sum(a,axis=1))  #axis=1为行
    print(np.max(a,axis=0))  #axis=0为列
    print(np.min(a,axis=1))  #行 
    
     
    [[ 0.47054195  0.44146948  0.71298909  0.8230615 ]
     [ 0.155426    0.06085024  0.36118835  0.45072419]]
    [ 2.44806202  1.02818877]
    [ 0.47054195  0.44146948  0.71298909  0.8230615 ]
    [ 0.44146948  0.06085024]
    
    In [67]:
    A=np.arange(2,14).reshape((3,4))
    print(A)
    print(np.argmin(A))
    print(np.argmax(A))
    
     
    [[ 2  3  4  5]
     [ 6  7  8  9]
     [10 11 12 13]]
    0
    11
    
    In [63]:
    print(np.mean(A))
    print(A.mean())        #平均值
    print(np.average(A))   #平均值
    print(np.median(A))    #中位数
    
     
    7.5
    7.5
    7.5
    7.5
    
    In [68]:
    print(np.cumsum(A))   #累加
    
     
    [ 2  5  9 14 20 27 35 44 54 65 77 90]
    
    In [69]:
    print(np.diff(A))   #累差
    
     
    [[1 1 1]
     [1 1 1]
     [1 1 1]]
    
    In [72]:
    print(np.nonzero(A))   #
    
     
    (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
    
    In [74]:
    A=np.arange(14,2,-1).reshape((3,4))
    print(A)
    print(np.sort(A))   #按行排序
    
     
    [[14 13 12 11]
     [10  9  8  7]
     [ 6  5  4  3]]
    [[11 12 13 14]
     [ 7  8  9 10]
     [ 3  4  5  6]]
    
    In [78]:
    print(A)
    print(A.T)   #行列数交换。矩阵反向  也可以表示成transpose(A)
    print(A.T.dot(A))   #求矩阵相乘
    
     
    [[14 13 12 11]
     [10  9  8  7]
     [ 6  5  4  3]]
    [[14 10  6]
     [13  9  5]
     [12  8  4]
     [11  7  3]]
    [[332 302 272 242]
     [302 275 248 221]
     [272 248 224 200]
     [242 221 200 179]]
    
    In [79]:
    print(A)
    print(np.clip(A,5,9))   #小于5大于9的都替换成5或9,其他数保留不变。
    
     
    [[14 13 12 11]
     [10  9  8  7]
     [ 6  5  4  3]]
    [[9 9 9 9]
     [9 9 8 7]
     [6 5 5 5]]
    
    In [81]:
    print(A)
    print(np.mean(A,axis=1))   #行平均值
    print(np.mean(A,axis=0))   #列平均值
    
     
    [[14 13 12 11]
     [10  9  8  7]
     [ 6  5  4  3]]
    [ 12.5   8.5   4.5]
    [ 10.   9.   8.   7.]
    
    In [86]:
    A=np.arange(3,15).reshape((3,4))
    print(A)
    print(A[2])     #同 A[2,:]   第3行的所有数
    print(A[2][1])   #同A[2,1]
    print(A[:,1])   #第一列的所有数
    print(A[1,1:3])
    
     
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    [11 12 13 14]
    12
    [ 4  8 12]
    [8 9]
    
    In [87]:
    A=np.arange(3,15).reshape((3,4))
    print(A)
    for row in A:
        print(row)
    
     
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    [3 4 5 6]
    [ 7  8  9 10]
    [11 12 13 14]
    
    In [89]:
    A=np.arange(3,15).reshape((3,4))
    print(A)
    for column in A.T:
        print(column)
    
     
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    [ 3  7 11]
    [ 4  8 12]
    [ 5  9 13]
    [ 6 10 14]
    
    In [91]:
    A=np.arange(3,15).reshape((3,4))
    print(A)
    print(A.flatten())
    for i in A.flat:
        print(i)
    
     
    [[ 3  4  5  6]
     [ 7  8  9 10]
     [11 12 13 14]]
    [ 3  4  5  6  7  8  9 10 11 12 13 14]
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    In [96]:
    A=np.array([1,2,3])
    B=np.array([4,5,6])
    c=np.vstack((A,B))    #上下合并
    print(A.shape)
    print(c)
    print(c.shape)
    
     
    (3,)
    [[1 2 3]
     [4 5 6]]
    (2, 3)
    
    In [97]:
    d=np.hstack((A,B))   #左右合并
    print(d)
    print(d.shape)
    
     
    [1 2 3 4 5 6]
    (6,)
    
    In [99]:
    print(A)
    print(A.T)
    
     
    [1 2 3]
    [1 2 3]
    
    In [105]:
    print(A)
    print(A[:,np.newaxis],A[:,np.newaxis].shape)
    
     
    [1 2 3]
    [[1]
     [2]
     [3]] (3, 1)
    
    In [104]:
    print(A,A.shape)
    print(A[np.newaxis:],A[np.newaxis:].shape)
    
     
    [1 2 3] (3,)
    [1 2 3] (3,)
    
    In [107]:
    A=np.array([1,2,3])[:,np.newaxis]    #以列作为维度
    B=np.array([4,5,6])[:,np.newaxis]
    c=np.vstack((A,B))    #上下合并
    d=np.hstack((A,B))    #左右合并
    print(A)
    print(B)
    print(c)
    print(d)
    
     
    [[1]
     [2]
     [3]]
    [[4]
     [5]
     [6]]
    [[1]
     [2]
     [3]
     [4]
     [5]
     [6]]
    [[1 4]
     [2 5]
     [3 6]]
    
    In [112]:
    A=np.array([1,2,3])[:,np.newaxis]    #以列作为维度
    B=np.array([4,5,6])[:,np.newaxis]
    e=np.concatenate((A,B,B,A),axis=0)   #按列合并。等同vstack((A,B))  上下合并
    print(e)
    f=np.concatenate((A,B,B,A),axis=1)    #按行合并。等同hstack((A,B))  左右合并
    print(f)
    
     
    [[1]
     [2]
     [3]
     [4]
     [5]
     [6]
     [4]
     [5]
     [6]
     [1]
     [2]
     [3]]
    [[1 4 4 1]
     [2 5 5 2]
     [3 6 6 3]]
    
    In [120]:
    A=np.arange(12).reshape((3,4))
    print(A)
    b=np.split(A,2,axis=1)   #axis=1 按列来分割
    print(b)
    c=np.split(A,3,axis=0)    #axis=0 按行来分割
    print(c)
    
     
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    [array([[0, 1],
           [4, 5],
           [8, 9]]), array([[ 2,  3],
           [ 6,  7],
           [10, 11]])]
    [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
    
    In [122]:
    print(A)
    d=np.array_split(A,3,axis=1)  #不等分割
    print(d)
    
     
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    [array([[0, 1],
           [4, 5],
           [8, 9]]), array([[ 2],
           [ 6],
           [10]]), array([[ 3],
           [ 7],
           [11]])]
    
    In [124]:
    print(A)
    b=np.vsplit(A,3)   #上下分割   按行分割   同 split(A,3,axis=0)
    print(b)
    
     
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
    
    In [125]:
    print(A)
    b=np.hsplit(A,2)   #左右分割   按列分割   同 split(A,2,axis=1) 
    print(b)
    
     
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    [array([[0, 1],
           [4, 5],
           [8, 9]]), array([[ 2,  3],
           [ 6,  7],
           [10, 11]])]
    
    In [130]:
    a=np.array([1,2,3,4])
    b=a
    c=a
    d=b
    print(a,b,c,d)
    print(b is a)
    a[0]=11
    print(a,b,c,d)
    b[1:3]=[22,33]
    print(a,b,c,d)
    
     
    [1 2 3 4] [1 2 3 4] [1 2 3 4] [1 2 3 4]
    True
    [11  2  3  4] [11  2  3  4] [11  2  3  4] [11  2  3  4]
    [11 22 33  4] [11 22 33  4] [11 22 33  4] [11 22 33  4]
    
    In [137]:
    a=np.array([1,2,3,4])
    e=a.copy()  #deep copy
    print(e,a)
    print(e is a)
    a[0]=55
    print(e,a)
    
     
    [1 2 3 4] [1 2 3 4]
    False
    [1 2 3 4] [55  2  3  4]
  • 相关阅读:
    Visual studio之C# 调用系统软键盘(外部"osk.exe")
    Visual studio之C# 重新定义Messbox的显示窗口位置
    Visual studio之C#的一些常见问题
    C8051F340之USB简介
    CentOS 安装 Sun JDK
    配置Tomcat以指定的身份(非root)运行
    CentOS6 root 用户 vi/vim 无法开启高亮
    删除 Mac OS X 中“打开方式”里重复或无用的程序列表
    快速建立Linux c/c++编译环境
    Ubuntu 安装 Sun JDK
  • 原文地址:https://www.cnblogs.com/afangxin/p/6994439.html
Copyright © 2011-2022 走看看