3.3 ndarray对象

NumPy中定义的最重要的对象是称为ndarray的N维数组类型。它描述相同类型的元素集合,可以使用基于零的索引访问集合中的项目。

ndarray中的每个元素在内存中使用相同大小的块。ndarray中的每个元素是数据类型对象的对象(称为dtype)。

从ndarray对象提取的任何元素(通过切片)由一个数组标量类型的Python对象表示。图3.1显示了ndarray数据类型对象(dtype)和数组标量类型之间的关系。

图3.1 ndarray数据类型对象(dtype)和数组标量类型之间的关系

ndarray类的实例可以通过不同的数组创建例程来构造。基本的ndarray是使用NumPy中的数组函数创建的,如下所示:

numpy.array

它从任何暴露数组接口的对象或从返回数组的任何方法创建一个ndarray。

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin
= 0)

上面的构造器接收以下参数:

  •  object:任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。
  •  dtype:数组所需的数据类型,可选。
  •  copy:可选,默认为true,对象是否被复制。
  •  order:C(按行)、F(按列)或A(任意,默认)。
  •  subok:默认情况下,返回的数组强制为基类数组。如果为true,就返回子类。
  •  ndmin:指定返回数组的最小维数。

【例3.1】

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

输出如下:

[1, 2, 3]

【例3.2】

# 多于一个维度
import numpy as np
a = np.array([[1,  2],  [3,  4]])
print a

输出如下:

[[1, 2]
[3, 4]]

【例3.3】

# 最小维度
import numpy as np
a = np.array([1,  2,  3,4,5], ndmin =  2)
print a

输出如下:

[[1, 2, 3, 4, 5]]

【例3.4】

# dtype 参数
import numpy as np
a = np.array([1,  2,  3], dtype = complex)
print a

输出如下:

[ 1.+0.j,  2.+0.j,  3.+0.j]

ndarray对象由计算机内存中的一维连续区域组成,带有将每个元素映射到内存块中某个位置的索引方案。内存块以按行(C风格)或按列(Fortran或MATLAB风格)的方式保存元素。