360网站认证域名,东莞企业网站建立报价,惠州市建设局网站,网线制作口诀1.NumPy Ndarray 对象简介 NumPy 最重要的特点是其 N 维数组对象 ndarray#xff0c;它是一系列同类型数据的集合#xff0c;以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。
2.N…1.NumPy Ndarray 对象简介 NumPy 最重要的特点是其 N 维数组对象 ndarray它是一系列同类型数据的集合以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。
2.Ndarray 内部组成
1一个指向数据内存或内存映射文件中的一块数据的指针。
2数据类型或 dtype描述在数组中的固定大小值的格子。
3一个表示数组形状shape的元组表示各维度大小的元组。
4一个跨度元组stride整数是为了前进到当前维度中下一个元素需要跨过的字节数。
3.Ndarray关键组成部分
1数据缓冲区Data Buffer存储数组元素的连续内存块所有数据都以二进制格式保存在内存中。ndarray 支持各种数据类型例如 int32、float64这些数据类型通过 dtype 属性定义。
2数据类型描述符 (dtype)指定数组中每个元素的数据类型和大小。例如int32 表示每个整数占 4 字节float64 表示每个浮点数占 8 字节。dtype 还可以表示结构化数据类型即包含多个字段的复合数据类型。
3维度 (shape)shape 是表示数组维数的元组。例如二维数组的 shape 属性可能是 (3, 4)表示数组有 3 行 4 列。shape 定义数据的逻辑结构尽管所有元素是连续存储的。
4步长 (strides)表示在数组的每个维度中移动一个元素所需的字节数。strides 是与 shape 相同大小的元组用于计算内存地址。例如步长 (16, 4) 表示移动到下一行需要 16 字节而在同一行中移动一个元素需要 4 字节。
5维数 (ndim)数组的维数。例如标量的维数是 0向量的维数是 1矩阵的维数是 2。
6大小 (size)数组中元素的总数即所有维度大小的乘积。例如shape 为 (3, 4) 的数组其 size 为 12。
7内存布局ndarray 支持多种内存布局例如C 语言风格行优先C_CONTIGUOUS或 Fortran 风格列优先F_CONTIGUOUS。内存布局影响数据的存储方式以及遍历数据效率。
4.Ndarray 的内部结构 跨度可以是负数这会使数组在内存中后向移动。假设存在数组 obj np.array([1, 2, 3, 4])若使用切片 obj[::-1]步长为负数数组会从最后一个元素反向读取得到 [4, 3, 2, 1] 的结果。 1headerndarray 的头部包含了数组的元信息如维数ndim、形状shape和步长strides等。这些信息定义数组的维度、数据布局以及如何通过步长在内存中访问数组元素。
2data-type数组元素的数据类型定义描述了数组每个元素的存储类型例如 int32、float64 等。data-type 信息与数据缓冲区关联用来解释每个元素的存储格式。
3ndarray 数据块这是数组的实际数据存储区域包含了数组的元素。元素在内存中按照 shape 和 strides 的定义顺序排列。这里的黑色方框表示一个特定的元素标注为 array scalar。
4array scalar这个元素被从数组数据块中提取出来可能是为了进行单独操作或计算。通过头部中的信息和步长可以找到并访问到这个元素。
5步长为负图中还说明了 ndarray 的步长可以是负数这意味着数组可以在内存中反向移动。通过使用负步长可以实现反向切片如 obj[::-1] 或 obj[:, ::-1]从而使数组从最后一个元素开始向前访问数据。这种操作方式在不实际复制数据的情况下实现了反向排列。
5.调用 NumPy 的 array 函数创建ndarray
numpy.array(object, dtype None, copy True, order None, subok False, ndmin 0)
1object数组或嵌套的数列
2dtype数组元素的数据类型可选
3copy对象是否需要复制可选
4order创建数组的样式C为行方向F为列方向A为任意方向默认
5subok默认返回一个与基类类型一致的数组
6ndmin指定生成数组的最小维度
6.使用 numpy 创建并打印简单的一维数组
import numpy as np
a np.array([1,2,3])
print (a) 7.使用 numpy 创建并打印二维数组矩阵
# 多于一个维度
import numpy as np
a np.array([[1, 2], [3, 4]])
print (a) 8.使用 ndmin 参数将一维数据强制升维为二维
# 最小维度
import numpy as np
a np.array([1, 2, 3, 4, 5], ndmin 2)
print (a) 9.通过 dtype 参数来指定数组的数据类型
# dtype 参数
import numpy as np
a np.array([1, 2, 3], dtype complex)
print (a)