Numpy教程

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 - 该缓冲区包含数组的实际元素。通常,我们不需要使用此属性,因为我们将使用索引访问数组中的元素。
我们来看一个具体的例子
>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
       [ 5, 6, 7, 8, 9],
       [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2
>>> a.dtype.name
'int64'
>>> a.itemsize
8
>>> a.size
15
>>> type(a)
'numpy.ndarray'
>
>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8])
>>> type(b)

创建一个 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、一维数组
>>> import numpy as np
>>> a = np.array([1,2,3,4,5])
>>> print (a)
[1 2 3 4 5]
2、多维数组
>>> import numpy as np
>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> print(a)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
3、指定数组维度
>>> import numpy as np
>>> a = np.array([1,2,3,4,5], ndmin = 3)
>>> print(a)
[[[1 2 3 4 5]]]
4、指定数组元素类型
>>> import numpy as np
>>> a = np.array([1,2,3,4,5,6], dtype = float32)
>>> print(a)
[1. 2. 3. 4. 5. 6.]
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4