一、基本类型
二、数组属性
三、数组迭代(了解)
import numpy as np
# 创建一个数组
a = np.arange(6).reshape(2, 3)
# 使用np.nditer遍历数组
for x in np.nditer(a):
print(x)
np.nditer
有多个参数,用于控制迭代器的行为,以下是一些重要参数的介绍:
-
op:要迭代的数组或数组序列。
-
flags:一个字符串列表,用于控制迭代器的行为。例如,
'buffered'
、'c_index'
、'f_index'
、'multi_index'
等。这些标志可以组合使用,以满足不同的迭代需求。'buffered'
:启用缓冲,以减少内存访问次数。'c_index'
:跟踪C顺序索引。'f_index'
:跟踪Fortran顺序索引。'multi_index'
:跟踪多个索引或每个迭代维度一个索引元组。
-
op_flags:一个字符串列表,用于指定每个操作数的标志。常用的有
'readonly'
、'readwrite'
和'writeonly'
。'readonly'
:表示只读取操作数。'readwrite'
:表示将读取和写入操作数。'writeonly'
:表示只会写入操作数。
-
op_dtypes:一个数据类型或数据类型元组,用于指定操作数所需的数据类型。如果启用了复制或缓冲,则数据将转换为指定的类型。
-
order:控制迭代顺序,可选
'C'
(C顺序)、'F'
(Fortran顺序)或'A'
(如果所有数组都是Fortran连续的,则为'F'
顺序,否则为'C'
顺序)。 -
casting:控制进行复制或缓冲时可能出现的数据转换类型。可选值包括
'no'
、'equiv'
、'safe'
、'same_kind'
和'unsafe'
。
高级用法:
# 同时迭代多个数组
a = np.arange(6).reshape(2, 3)
b = np.array([[1, 2, 3], [4, 5, 6]])
# 使用multi_index同时获取索引和元素值
it = np.nditer([a, b], flags=['multi_index'], op_flags=['readonly'])
while not it.finished:
print(it.multi_index, it[0], it[1])
it.iternext()
四、写在最后
学习OpenCV前,扎实的Numpy基础是不容忽视的。
链接跳转:
章节一、OpenCV||超细节的基本操作
章节三、OpenCV||超详细的图像处理模块
章节四、OpenCV||超详细的灰度变换和直方图修正
章节五、OpenCV||超详细的图像平滑
章节六、OpenCV||超详细的几何变换