购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.6 数组创建例程

1.NumPy数组创建例程

新的ndarray对象可以通过下列数组创建例程或使用低级ndarray构造函数构造。

(1)语法:numpy.empty

创建指定形状和dtype的未初始化数组。该函数的用法如下:

numpy.empty(shape, dtype = float, order = 'C')

构造器接收下列参数:

【例3.15】

下面是一个展示空数组的例子:

   import numpy as np
   x = np.empty([3,2], dtype =  int)
   print x

输出如下:

   [[22649312    1701344351]
    [1818321759  1885959276]
    [16779776    156368896]]

注意:数组元素为随机值,因为它们未初始化。

(2)语法:numpy.zeros

返回特定大小,以0填充的新数组。该函数的用法如下:

numpy.zeros(shape, dtype = float, order = 'C')

构造器接收下列参数:

【例3.16】

   # 含有 5 个 0 的数组,默认类型为 float
   import numpy as np
   x = np.zeros(5)
   print x

输出如下:

   [ 0.  0.  0.  0.  0.]

(3)语法:numpy.ones

返回特定大小,以1填充的新数组。该函数的用法如下:

numpy.ones(shape, dtype = None, order = 'C')

构造器接收下列参数:

【例3.17】

   # 含有 5 个 1 的数组,默认类型为 float
   import numpy as np
   x = np.ones(5)  print x

输出如下:

   [ 1.  1.  1.  1.  1.]
2.NumPy现有数据数组

(1)语法:numpy.asarray

该函数类似于numpy.array,除了它有较少的参数外。这个例程对于将Python序列转换为ndarray非常有用。该函数的用法如下:

numpy.asarray(a, dtype = None, order = None)

构造器接收下列参数:

【例3.18】

   # 将列表转换为 ndarray
   import numpy as np

   x =  [1,2,3]
   a = np.asarray(x)
   print a

输出如下:

   [1  2  3]

【例3.19】

   # 设置了 dtype
   import numpy as np
   
   x =  [1,2,3]
   a = np.asarray(x, dtype =  float)
   print a

输出如下:

   [ 1.  2.  3.]

(2)语法:numpy.frombuffer

此函数将缓冲区解释为一维数组。暴露缓冲区接口的任何对象都用作参数来返回ndarray。该函数的用法如下:

numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)

构造器接收下列参数:

【例3.20】

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']

(3)语法:numpy.fromiter

此函数从任何可迭代对象构建一个ndarray对象,返回一个新的一维数组。该函数的用法如下:

numpy.fromiter(iterable, dtype, count=-1)

构造器接收下列参数:

【例3.21】

使用内置的range()函数返回列表对象,此列表的迭代器用于形成ndarray对象。

   # 使用 range 函数创建列表对象
   import numpy as np
   list = range(5)
   print list

输出如下:

   [0,  1,  2,  3,  4]
3.NumPy数值范围数组

(1)语法:numpy.arange

该函数从数值范围创建数组,返回ndarray对象,包含给定范围内的等间隔值。该函数的用法如下:

numpy.arange(start, stop, step, dtype)

构造器接收下列参数:

【例3.22】

   import numpy as np
   x = np.arange(5)
   print x

输出如下:

   [0  1  2  3  4]

(2)语法:numpy.linspace

该函数类似于arange()函数。在此函数中,指定了范围之间的均匀间隔数量,而不是步长。该函数的用法如下:

numpy.linspace(start, stop, num, endpoint, retstep, dtype)

构造器接收下列参数:

【例3.23】

   import numpy as np
   x = np.linspace(10,20,5)
   print x

输出如下:

   [10.  12.5  15.  17.5  20.]

(3)语法:numpy.logspace

该函数返回一个ndarray对象,其中包含在对数刻度上均匀分布的数字。刻度的开始和结束端点是某个底数的幂,通常为10。该函数的用法如下:

numpy.logscale(start, stop, num, endpoint, base, dtype)

logspace函数的输出由以下参数决定:

【例3.24】

   import numpy as np
   # 默认底数是 10
   a = np.logspace(1.0,  2.0, num =  10)
   print a

输出如下: DoMApCWx87VpbhKw0eXfz+WZ+CvFGp9HU41syd1uZH3Rh7P0dFXtGPGctRPrT7ov

点击中间区域
呼出菜单
上一章
目录
下一章
×