NumPy(1)简介,基础属性,数组创建(ones,zeros,

作者: 加勒比海鲜王 | 来源:发表于2017-06-05 15:02 被阅读0次

    保留初心,砥砺前行

    在使用tensorflow的时候需要对输入的tensor进行处理。

    NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多。 ——百度百科

    因此简单记录一下NumPy的学习笔记,方便进行数据处理。

    NumPy官方网站

    NumPy Tutorial

    • NumPy的主要对象是齐次多维数组。这是一个的有相同类型的元素的表(通常是数字),索引是一个元组的正整数。在NumPy中维度被称为轴(axes)。axes的数量叫做rank。
      例如,三维空间中的一个点的坐标[1, 2, 1]是rank为1的数组,因为它有一个轴(axes),这个轴的长度为3。
      在下边的例子中,这个数组有两个轴 (可以理解为横轴和纵轴)。纵轴的长度为2,横轴的长度为3。
    [[ 1., 0., 0.],
     [ 0., 1., 2.]]
    
    • NumPy的数组类叫做ndarray,别名array。
      注意:这里的numpy.array和python标准库中的那个只能解决一维数组,只提供了少量功能的array.array不一样。

    • ndarray的一些属性:

    ndarray.ndim
    数组中轴的数量,如下图所示,该数组有横轴纵轴两条轴,所以ndarray.ndim值为2

    ndarray.ndim
    ndarray.shape
    数组的维度,是指明数组每一维的size的整形元组。
    ndarray.shape
    ndarray.size
    数组的所有的数字的数量。
    ndarray.size
    ndarray.dtype
    描述数组中元素的类型的对象。从下图中可以看出返回值并不是一个数据类型,而是数据类型的对象。可以通过ndarray.dtype.name得到它的类型。
    ndarray.dtype
    ndarray.itemsize
    数组中每个元素的字节数。
    ndarray.itemsize
    • 创建数组:

    使用array函数创建数组。数组的类型由数组中元素的类型得到。
    注意:array函数中传入的要是一个list。

    import numpy as np
    a = np.array([1, 2, 3])
    print a
    [1 2 3]
    
    import numpy as np
    a = np.array([(1, 2, 3), (1, 2, 3), (1, 2, 3)])
    print a
    [[1 2 3]
     [1 2 3]
     [1 2 3]]
    

    通常,一个数组的元素最初未知,但它的大小已知。因此NumPy提供了几个函数使用初始内容占位符来创建数组。
    函数zeros创建全0数组, 函数ones创建全1数组, 函数empty 创建初始值随机的数组。这些数组默认类型为float64,也可以在函数中制定类型
    类似oneszeros,存在函数ones_likezeros_like,作用是创建一个与给出的数组相同形状和类型的全1或全0数组。

    import numpy as np
    a = np.zeros([2, 3])
    print a
    [[ 0.  0.  0.]
     [ 0.  0.  0.]]
    
    import numpy as np
    a = np.ones([2, 3])
    print a
    [[ 1.  1.  1.]
     [ 1.  1.  1.]]
    
    import numpy as np
    a = np.ones([2, 3], dtype=np.int32)
    print a
    [[1 1 1]
     [1 1 1]]
    
    import numpy as np
    a = np.empty([2, 3])
    print a
    [[  0.00000000e+000   2.68156175e+154   2.12354999e-314]
     [  2.12357331e-314   2.12357331e-314   2.12357336e-314]]
    

    NumPy中有一个类似于range功能的函数arange,和range基本相同,只是返回的不是list而是数组。

    np.arange(1, 20, 3)     #从1开始到20,间隔3
    array([ 1,  4,  7, 10, 13, 16, 19])
    

    函数linspace,如下代码所示,在1到2中按等差数列找出10个元素。

     np.linspace(1, 2, 10)
    array([ 1.        ,  1.11111111,  1.22222222,  1.33333333,  1.44444444,
            1.55555556,  1.66666667,  1.77777778,  1.88888889,  2.        ])
    

    其他数组创建方式见以下相关链接中NumPy(3)的内容。

    相关链接:NumPy(2)reshape,dot,flat
    相关链接:NumPy(3)full,eye,empty,random

    相关文章

      网友评论

        本文标题:NumPy(1)简介,基础属性,数组创建(ones,zeros,

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