zoukankan      html  css  js  c++  java
  • Numpy 机器学习三剑客之Numpy

    NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

    Numpy简单创建数组

    nlist = np.array([1,2,3])
    print(nlist)
    #[1 2 3]

    Numpy查看数组属性

    #ndim方法用来查看数组维度
    print(nlist.ndim)   #2
    
    #二维数组
    nlist_2 = np.array([[1,2,3],[4,5,6]])
    print(nlist_2)
    print(nlist_2.ndim)
    
    #[[1 2 3]
    #  [4 5 6]]
    #  2
    
    #使用shape属性来大印多维数组的形状
    print(nlist.shape,nlist_2.shape)
    #(3,) (2, 3)
    
    #使用size方法来打印多维数组的元素个数
    print(np.size(nlist))
    print(np.size(nlist_2))
    # 3
    # 6
    
    #打印numpy多维数组的数据类型
    print(type(nlist))
    #<class 'numpy.ndarray'>
    
    #使用dtype属性打印多维数组内部元素的数据类型
    print(nlist.dtype)
    #itemsizes属性,多维数组中的数据类型大小,字节
    print(nlist.itemsize)
    #data属性 打印数据缓冲区 buffer
    print(nlist.data)
    # int32
    #   4
    #  <memory at 0x0000023047DB5C48>

    快速创建N维数组的api函数

    #使用ones方法,自动生成元素为1的多维数组
    nlist_ones = np.ones((4,4))
    print(nlist_ones)
    print(nlist_ones.dtype)
    
    #[[1. 1. 1. 1.]
    # [1. 1. 1. 1.]
    # [1. 1. 1. 1.]
    # [1. 1. 1. 1.]]
    #float64
    
    #zeros
    nlist_zeros = np.zeros((4,4))
    print(nlist_zeros)
    #[[0. 0. 0. 0.]
    # [0. 0. 0. 0.]
    # [0. 0. 0. 0.]
    # [0. 0. 0. 0.]]
    
    #使用empty方法来生成随机多维数组,使用第二参数指定数据类型
      nlistempty = np.empty([2,2])
     nlist_empty = np.empty([2,2],dtype=np.int)
    print(nlistempty)
     print(nlist_empty)
    #[[5.e-324 5.e-324]
    # [0.e+000 0.e+000]]
    #[[0 0]
    # [0 0]]

    使用reshape方法来反向生成多维数组
    nlist_3 = np.array(range(24)).reshape((3,2,4))
    print(nlist_3)
    print(nlist_3.shape)
    nlist_float = np.array([1.0,2.0])
    print(nlist_float.dtype)
    #使用字符串
    nlist_string=np.array(['1','2','3'])
    print(nlist_string.dtype)
    
    #[[[ 0  1  2  3]
    #  [ 4  5  6  7]]
    #
    # [[ 8  9 10 11]
    #  [12 13 14 15]]
    #
    # [[16 17 18 19]
    #  [20 21 22 23]]]
    #(3, 2, 4)
    #float64
    #<U1
    把普通list转换为数组
    x = [1,2,3]
    x = [(1,2,3),(4,5)]
    nlist = np.asarray(x)
    print(nlist)
    
    #[(1, 2, 3) (4, 5)]
    frombuffer 通过字符串(buffer内存地址)切片来生成多维数组
    my_str = b"hello world"
    nlist_str = np.frombuffer(my_str,dtype='S1')
    print(nlist_str)
    
    #[b'h' b'e' b'l' b'l' b'o' b' ' b'w' b'o' b'r' b'l' b'd']
    axis 属性可以指定当前多维数组的维度(0表示行,1表示列 keepdims表示结构)
    sum0 = np.sum(x,axis=0,keepdims=False)
    print(sum0)
    sum1 = np.sum(x,axis=1,keepdims=1)
    sum = np.sum(x,axis=1,keepdims=0)
    print(sum1,sum)
    
    #[4 6]
    #[[3]
    # [7]]
    #[3 7]
    维度级的运算
    a = np.array([[1,2],[3,4],[5,6]])
    b = np.array([[10,20],[30,40],[50,60]])
    
    #vstack方法
    suma = np.vstack((a,b))
    print(suma)
    print("-"*30)
    #hstack方法
    sumb = np.hstack((a,b))
    print(sumb)
    
    #[[ 1  2]
    #[ 3  4]
    # [ 5  6]
    # [10 20]
    # [30 40]
    # [50 60]]
    ------------------------------
    #[[ 1  2 10 20]
    # [ 3  4 30 40]
    # [ 5  6 50 60]]
    多维数组的调用
    nlist=np.array([[1,2],[3,4],[5,6]])
    print(nlist[1][1])
    print(nlist[1,1])
    #删除方法 delete
    #s删除nlist第二行
    print(np.delete(nlist,1,axis=0))
    print(np.delete(nlist,0,axis=1))
    
    #4
    #4
    #[[1 2]
    # [5 6]]
    #[[2]
    # [4]
    # [6]]

    **未完待续

  • 相关阅读:
    Asp.Net Web API 2第八课——Web API 2中的属性路由
    Asp.Net Web API 2第七课——Web API异常处理
    Asp.Net Web API 2第六课——Web API路由和动作选择
    Asp.Net Web API 2第五课——Web API路由
    开始学习python
    BMI 小程序 购物车
    深浅copy 文件操作
    字典 dict 集合set
    基本数据类型 (str,int,bool,tuple,)
    python 运算符
  • 原文地址:https://www.cnblogs.com/xcsg/p/10461095.html
Copyright © 2011-2022 走看看