NumPy - 来自现有数据的数组

  • 简述

    在本章中,我们将讨论如何从现有数据创建数组。
  • numpy.asarray

    这个函数与 numpy.array 类似,只是它的参数更少。此例程对于将 Python 序列转换为 ndarray 很有用。
    
    numpy.asarray(a, dtype = None, order = None)
    
    构造函数采用以下参数。
    序号 参数及说明
    1
    a
    以任何形式输入数据,例如列表、元组列表、元组、元组的元组或列表的元组
    2
    dtype
    默认情况下,输入数据的数据类型应用于生成的 ndarray
    3
    order
    C(行专业)或 F(列专业)。C 是默认值
    以下示例显示了如何使用asarray功能。

    示例 1

    
    # convert list to ndarray 
    import numpy as np 
    x = [1,2,3] 
    a = np.asarray(x) 
    print a
    
    它的输出如下 -
    
    [1  2  3] 
    

    示例 2

    
    # dtype is set 
    import numpy as np 
    x = [1,2,3]
    a = np.asarray(x, dtype = float) 
    print a
    
    现在,输出如下 -
    
    [ 1.  2.  3.] 
    

    示例 3

    
    # ndarray from tuple 
    import numpy as np 
    x = (1,2,3) 
    a = np.asarray(x) 
    print a
    
    它的输出将是 -
    
    [1  2  3]
    

    示例 4

    
    # ndarray from list of tuples 
    import numpy as np 
    x = [(1,2,3),(4,5)] 
    a = np.asarray(x) 
    print a
    
    在这里,输出如下 -
    
    [(1, 2, 3) (4, 5)]
    
  • numpy.frombuffer

    此函数将缓冲区解释为一维数组。任何暴露缓冲区接口的对象都被用作参数以返回一个ndarray.
    
    numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
    
    构造函数采用以下参数。
    序号 参数及说明
    1
    buffer
    任何暴露缓冲区接口的对象
    2
    dtype
    返回的 ndarray 的数据类型。默认为浮动
    3
    count
    要读取的项目数,默认-1表示所有数据
    4
    offset
    要读取的起始位置。默认为 0

    例子

    下面的例子演示了使用frombuffer功能。
    
    import numpy as np 
    s = 'Hello World' 
    a = np.frombuffer(s, dtype = 'S1') 
    print a
    
    这是它的输出 -
    
    ['H'  'e'  'l'  'l'  'o'  ' '  'W'  'o'  'r'  'l'  'd']
    
  • numpy.fromiter

    这个函数构建了一个ndarray来自任何可迭代对象的对象。此函数返回一个新的一维数组。
    
    numpy.fromiter(iterable, dtype, count = -1)
    
    在这里,构造函数采用以下参数。
    序号 参数及说明
    1
    iterable
    任何可迭代对象
    2
    dtype
    结果数组的数据类型
    3
    count
    要从迭代器中读取的项目数。默认为-1,表示要读取所有数据
    下面的例子展示了如何使用内置的range()函数返回一个列表对象。此列表的迭代器用于形成ndarray目的。

    示例 1

    
    # create list object using range function 
    import numpy as np 
    list = range(5) 
    print list
    
    它的输出如下 -
    
    [0,  1,  2,  3,  4]
    

    示例 2

    
    # obtain iterator object from list 
    import numpy as np 
    list = range(5) 
    it = iter(list)  
    # use iterator to create ndarray 
    x = np.fromiter(it, dtype = float) 
    print x
    
    现在,输出如下 -
    
    [0.   1.   2.   3.   4.]