美文网首页
NumPy(基础)

NumPy(基础)

作者: 人机分离机 | 来源:发表于2017-12-01 14:54 被阅读0次

    常用函数

    • mat( ): 将数组转化为矩阵
    • np.I 操作符: 实现了矩阵求逆的运算
    • np.log:是计算对数函数
    • np.abss:是计算数据的绝对值
    • np.max imum:计算元素 y 中的最大值,你也可以 np.max imum(v,0)

    一、数据类型和形状

    • NumPy 中处理数字的最常见方式是通过ndarray对象。它们与 Python 列表相似,但是可以有任意数量的维度。而且,ndarray支持快速的数学运算,这正是我们想要的。
    • 由于它可以存储任意数量的维度,你可以使用ndarray来表示我们之前提到的任意数据类型:标量、向量、矩阵或张量。
    #为了方便使用numpy 采用np简写
    import numpy as np 
    

    1.numpy 的几种属性(维度、行数和列数、元素个数)

    array = np.array([[1,2,3],[2,3,4]])  #列表转化为矩阵
    print(array)
    """
    array([[1, 2, 3],
           [2, 3, 4]])
    """
    
    print('number of dim:',array.ndim)  # 维度
    # number of dim: 2
    
    print('shape :',array.shape)    # 行数和列数
    # shape : (2, 3)
    
    print('size:',array.size)   # 元素个数
    # size: 6
    

    2.创建 array

    1. array:创建数组
    a = np.array([2,23,4])  # list 1d
    print(a)
    # [2 23 4]
    
    1. 指定数据 dtype
    • 当你创建 NumPy 数组时,可以指定类型 - 但是数组中的每一项必须具有相同的类型。
    # py3.5后创建int默认类型为int32
    a = np.array([2,23,4],dtype=np.int)
    print(a.dtype)
    
    # int64
    a = np.array([2,23,4],dtype=np.int64)
    print(a.dtype)
    
    # 创建float默认类型为float64
    a = np.array([2,23,4],dtype=np.float)
    print(a.dtype)
    
    # float32
    a = np.array([2,23,4],dtype=np.float32)
    print(a.dtype)
    
    1. 创建特定数据
    • 2行3列矩阵
    a = np.array([[2,23,4],[2,32,4]])  # 2d 矩阵 2行3列
    print(a)
    """
    [[ 2 23  4]
     [ 2 32  4]]
    """
    
    • 创建全零数组
    a = np.zeros((3,4)) # 数据全为0,3行4列
    """
    array([[ 0.,  0.,  0.,  0.],
           [ 0.,  0.,  0.,  0.],
           [ 0.,  0.,  0.,  0.]])
    """
    
    • 创建全一数组, 同时也能指定这些特定数据的 dtype:
    a = np.ones((3,4),dtype = np.int)   # 数据为1,3行4列
    """
    array([[1, 1, 1, 1],
           [1, 1, 1, 1],
           [1, 1, 1, 1]])
    """
    
    • 创建全空数组, 其实每个值都是接近于零的数:
    a = np.empty((3,4)) # 数据为empty,3行4列
    """
    array([[  0.00000000e+000,   4.94065646e-324,   9.88131292e-324,
              1.48219694e-323],
           [  1.97626258e-323,   2.47032823e-323,   2.96439388e-323,
              3.45845952e-323],
           [  3.95252517e-323,   4.44659081e-323,   4.94065646e-323,
              5.43472210e-323]])
    """
    
    • 用 arange 创建连续数组:
    a = np.arange(10,20,2) # 10-19 的数据,2步长
    """
    array([10, 12, 14, 16, 18])
    """
    
    • 使用 reshape 改变数据的形状
    a = np.arange(12).reshape((3,4))    # 3行4列,0到11
    """
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
    """
    
    • 用 linspace 创建线段型数据:
    a = np.linspace(1,10,20)    # 开始端1,结束端10,且分割成20个数据,生成线段
    """
    array([  1.        ,   1.47368421,   1.94736842,   2.42105263,
             2.89473684,   3.36842105,   3.84210526,   4.31578947,
             4.78947368,   5.26315789,   5.73684211,   6.21052632,
             6.68421053,   7.15789474,   7.63157895,   8.10526316,
             8.57894737,   9.05263158,   9.52631579,  10.        ])
    """
    
    • 同样也能进行 reshape 工作:
    a = np.linspace(1,10,20).reshape((5,4)) # 更改shape
    """
    array([[  1.        ,   1.47368421,   1.94736842,   2.42105263],
           [  2.89473684,   3.36842105,   3.84210526,   4.31578947],
           [  4.78947368,   5.26315789,   5.73684211,   6.21052632],
           [  6.68421053,   7.15789474,   7.63157895,   8.10526316],
           [  8.57894737,   9.05263158,   9.52631579,  10.        ]])
    """
    

    相关文章

      网友评论

          本文标题:NumPy(基础)

          本文链接:https://www.haomeiwen.com/subject/quxrmxtx.html