机器学习基础(二)之numpy基础

                                         numpy基础

‘’‘
    numpy初始化
’‘’

import numpy as np   //引用anaconda python中的numpy

X = np.arange(10)    //用numpy创建一个一维数组

X = array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) //运行结果


‘’‘
   #reshape 对数组进行重塑
’‘’

x = np.arange(15).reshape(3,5)  //塑造成3行5列

x = array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14]])

‘’‘
  #切片,对python中的列表进行切片处理,对于二维一样
’‘’

X = np.arange(10)

X[::-1]  //从逆序派过来

array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])

X[:3] //获取下标0-2的元素,左闭右开

array([0, 1, 2])

‘’‘
  #np中矩阵的连接方法
’‘’
x = np.arange(15).reshape(3,5)  

x = array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14]])

#concatenate:

np.concatenate([x,x])   //两个矩阵相叠

array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])

#vstack :垂直方向相叠

#hstack :水平方向相叠,这两个可以自行体会一下

‘’‘
  #np中矩阵的分割方法
’‘’

x = np.arange(0,15)

x1,x2,x3 = np.split(x,[3,7])  //注意此时需要用np.split(矩阵名,列表)二不能用 x.split来做,并且此时分为三部分

x = x.reshape([3,5])

x = array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14]])

#相对应于连接,也有vsplit和hsplit

upper,lower = np.vsplit(x,[2])

left,right = np.hsplit(x,[2])

‘’‘
  #np中矩阵的运算
’‘’

#支持 * + 并且与python中的有所区别

python:n = 10
        L = [i for i in range(n)]
        L*2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

np:    L = np.arange(1,16).reshape(3,5)
        L*2 = array([[ 2,  4,  6,  8, 10],
                 [12, 14, 16, 18, 20],
                 [22, 24, 26, 28, 30]]) //直接乘以两倍

#dot(两个矩阵相乘)
#np.linalg.inv() (求某个矩阵的逆矩阵)
#np.sim() (求和操作)
#mean(),median(),max(),min() 统计学基础上有
#

‘’‘
  #np中的arg,就是求索引index的值
’‘’
L = np.random.random(10)
L = array([0.35656266, 0.92360074, 0.05858776, 0.54221545, 0.06105745,
           0.71913071, 0.77703987, 0.91120598, 0.48754257, 0.16783168])
np.argmin(L)  得出2,对应下标是最小值

#axis = 0 对应按行 axis = 1 按列

‘’‘
  #np中的fancy indexing
’‘’

X = np.arange(16)

ind = [3,5,8]
X[ind]        相应得出array([3, 5, 8])

x = X.reshape(4,-1)  //reshape(4【代表几行】,-1【代表分4行,自动分为几列】)
x = array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11],
           [12, 13, 14, 15]])

row = np.array([1,3,2]) //想对应行的下标
col = np.array([2,1,3]) //想对应列的下标
x[row,col] = array([ 6, 13, 11])

#注意,python也支持[True,False]这中bool的元素
#注意,而且比较的结果也全是bool值,可以自行体会一下

猜你喜欢

转载自blog.csdn.net/qq_37982109/article/details/87887704
今日推荐