NumPy Ndarray对象

NumPy Ndarray对象的基础知识

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
ndarray 对象是用于存放同类型元素的多维数组。
ndarray 中的每个元素在内存中都有相同存储大小的区域。
ndarray 内部由以下内容组成:

一个指向数据(内存或内存映射文件中的一块数据)的指针。数据类型或 dtype,描述在数组中的固定大小值的格子。一个表示数组形状(shape)的元组,表示各维度大小的元组。一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。

NumPy的主要对象是同构多维数组。它是一个元素表(通常是数字),所有类型都相同,由非负整数元组索引。在NumPy维度中称为 轴 。

例如,3D空间中的点的坐标[1, 2, 1]具有一个轴。该轴有3个元素,所以我们说它的长度为3.在下面所示的实例中,数组有2个轴。第一轴的长度为2,第二轴的长度为3。

[[1.,0.,0.],[0.,1.,2.]]

NumPy的数组类被调用ndarray。这里需要注意的是numpy.array这与标准Python库类不同array.array,array.array只处理一维数组并提供较少的功能。ndarray对象有更重要的属性,具体如下:

ndarray.ndim - 数组的轴(维度)的个数。在Python世界中,维度的数量被称为rank。ndarray.shape - 数组的维度。这是一个整数的元组,表示每个维度中数组的大小。shape 元组的长度就是rank或维度的个数 ndim。ndarray.size - 数组元素的总数。这等于 shape 的元素的乘积。ndarray.dtype - 一个描述数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。ndarray.itemsize - 数组中每个元素的字节大小。例如,元素为 float64 类型的数组的 itemsize 为8(=64/8)。ndarray.data - 该缓冲区包含数组的实际元素。通常,我们不需要使用此属性,因为我们将使用索引访问数组中的元素。

我们来看一个具体的实例

>>>importnumpyasnp>>>a=np.arange(15).reshape(3,5)>>>aarray([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]])>>>a.shape(3,5)>>>a.ndim2>>>a.dtype.name'int64'>>>a.itemsize8>>>a.size15>>>type(a)

创建一个 ndarray 只需调用 NumPy 的 array 函数即可:

numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)
参数说明:

object - 数组或嵌套的数列dtype - 数组元素的数据类型,可选copy - 对象是否需要复制,可选order - 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)subok - 默认返回一个与基类类型一致的数组ndmin - 指定生成数组的最小维度

Ndarray 实例

下面我们通过一些实例来更好的理解Ndarray的用法。

1、一维数组
>>>importnumpyasnp>>>a=np.array([1,2,3,4,5])>>>print(a)[12345]
2、多维数组
>>>importnumpyasnp>>>a=np.array([[1,2,3],[4,5,6],[7,8,9]])>>>print(a)[[123][456][789]]
3、指定数组维度
>>>importnumpyasnp>>>a=np.array([1,2,3,4,5],ndmin=3)>>>print(a)[[[12345]]]
4、指定数组元素类型
>>>importnumpyasnp>>>a=np.array([1,2,3,4,5,6],dtype=float32)>>>print(a)[1.2.3.4.5.6.]
编辑于2024-05-20 20:23