numpy-2 创建数组对象方法

Posted leafchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy-2 创建数组对象方法相关的知识,希望对你有一定的参考价值。

一、一般最简单的创建用法

  a = np.array( list / tuple, dtype=np.float / np.int..)

 

二、 使用numpy中的函数来创建新的数组对象

  1.  a = np.arange( n / n, m)

    n:  一维数组:  参数为单独一个整数n, 表示创建一个从0开始,到 n - 1 的一维数组

    n, m: 一维数组,表示值为从n开始到m-1的一维数组

  2.  a = np.ones(shape, dtype=np.int)  所有元素的值都为1

    参数:

      a. 一维: 参数为一个数字时,如10, 则表示创建一个一维的,元素数量10,且都为整数的一维数组

        array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

      b. 二维: 参数为一个数组,如(3, 5), 则表示创建一个二维的, 每维3个一维数组,每个数组5个元素

        array( [ [1, 1, 1, 1, 1], [1, 1, 1, 1, 1] ] )

      c. 三维:  参数为一个数组,如(2, 3, 4), 则表示创建一个三维的,包含2个二维数组,每个二维中包含3个一维,每个一维有4个元素

        array( [

             [ [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1] ], 

             [ [1, 1, 1, 1], [1, 1, 1, 1],[1, 1, 1, 1] ]

          ] )

  3.   a = np.zeros(shape, dtype=np.int)

    参数: ... 与ones相同,但每个元素中的值都为0

  4.   a = np.full(shape, val, dtype=np.int)

    参数:... 与ones相同,但每个元素中的值都为val, 自定义的值  

  5. np.linspace(start, stop, count,dtype=np.int, endpoint=False)

    参数:

      start:起始值(包含)

      stop:结束值(包含)

      count: 元素个数

      endpoint: 是否使用结束值做为最后一个元素

    注意: 根据元素的个数,一般会从开始到结束值取中间的值, 每一个数与前一个数的差值相同

>>> a = np.linspace(1, 10, 3)
>>> a
array([ 1. ,  5.5, 10. ])

 

三、 通过已有数组 ,使用numpy中的函数来创建 相同形状 的新数组

  1. np.ones_like

    a = np.arange(50, dtype=np.int)

    b = np.ones_like(a, dtype=np.float)

    分析: 生成新的数组对象 b, 形状与a一样,但是1.小数

  2. np.zeros_like

    ...与onse_like相同,但值都是0

  3. np.full_like

    ...与onse_like相同,但值都是0

  4. np.concatenate  合并数组对象

    a = np.array([0, 1, 2, 3, 4], dtype=np.int)

    b = np.arange(5,10, dtype=np.int)

    c = np.concatenate((a, b))

>>> c = np.concatenate((a, b))
>>> c
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 

四、 修改现有数组形状、元素类型,数据类型,得到新的形状的新数组

  1.  a.reshape(shape)

    a = np.ones((2, 3, 4), dtype=np.int)

    b = a.reshape((3, 8))

    注意: 总的元素数量必须相同

  2.  a.astype(new_type)

    a = np.ones((2, 3, 4), dtype=np.int)

    b = a.astype(np.float)

  3.  a.tolist()

    数组对象------->列表

    某些需要代码使用该数据时,若需要列表类型的数据,则可以以此转为列表来使用

>>> a = np.full((2,3,4), 9, dtype=np.int)
>>> a
array([[[9, 9, 9, 9],
        [9, 9, 9, 9],
        [9, 9, 9, 9]],

       [[9, 9, 9, 9],
        [9, 9, 9, 9],
        [9, 9, 9, 9]]])
>>> b = a.tolist()
>>> b
[[[9, 9, 9, 9], [9, 9, 9, 9], [9, 9, 9, 9]], [[9, 9, 9, 9], [9, 9, 9, 9], [9, 9, 9, 9]]]

 

以上是关于numpy-2 创建数组对象方法的主要内容,如果未能解决你的问题,请参考以下文章

为什么我不能在此片段中生成唯一对象数组?

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

有人可以在快速数组中给出“如果不存在则追加”方法的片段吗?

怎么把json字符串转成数组对象