![OpenCV计算机视觉项目实战(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/696/52842696/b_52842696.jpg)
3-3-2 使用array( )函数建立一维数组
可以使用array( )函数建立一维数组,array( )函数的调用指令如下:
numpy.array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin)
上述参数意义如下。
object:数组数据。
dtype:数据类型,如果省略将使用可以容纳数据最省的类型。
copy:布尔值,默认是True,object内容会被复制,3-4-4节会有实例。
order:用于设定内存存储数组的顺序,值可以是‘K’、‘A’、‘C’、‘F’。如果object不是数组,新建立的数组将依照‘C’排列,也就是依照行(row)排列。如果object是数组,则以下成立。
‘K’:元素在内存中的顺序。
‘A’:元素原先顺序。
‘C’:依行排列。
‘F’:依列排列。
subok:布尔值,如果是True,将传递子类别。默认是False,返回的数组将被强制为基类。
ndmin:设定数组应该具有的最小维度。
建立时在小括号内填上中括号,然后将数组数值放在中括号内,彼此用逗号隔开。
实例1:建立一个一维数组,数组内容是1, 2, 3,同时列出数组的数据类型。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P35_1563.jpg?sign=1738983250-ZOpAhxiFjSnUEkhB3kcm3FQvjAZDuxsW-0-5140b19908762bccaca210bce038c107)
上述所建立的浮点数数组如下。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P35_1566.jpg?sign=1738983250-xDnVl1Ibbto5FLdWtXTLnrBX5FQ0DtxY-0-536a3f7c4ac954f0a188b769aca5c873)
数组建立好后,可以用索引方式取得或设定内容。
实例2:列出数组元素内容。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P35_1569.jpg?sign=1738983250-UOiJamFEtFNJlrjqNjjACQbwDp8v9Fq2-0-fce0e764bd13a9c944d050c4cedb89ad)
实例3:设定数组内容。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P35_1572.jpg?sign=1738983250-EfXh38lzpTh07TH5z1iRiN1CFcmmYasG-0-847ea1422d70e8426628816c8419570c)
实例4:认识ndarray的属性。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P35_1575.jpg?sign=1738983250-KWgNsaNg0BkSKpD5fMIfJ4GovWncTn6E-0-8f7de6b8a4ada56578e2c837afdb0060)
上述x.dtype获得int32,表示是32位的整数。x.itemsize是数组元素大小,其中以字节为单位,1字节是8位,由于元素是32位整数,所以返回是4。x.ndim返回数组维度是1,表示这是一维数组。x.shape以元组方式返回第一维元素个数,此处是3,后面对二维数组还会解说。x.size则是返回元素个数。
实例5:array( )函数也可以接受使用dtype参数设定元素的数据类型。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P35_1578.jpg?sign=1738983250-bVX4r0vSWAgQGpCecmoqMf5ujwPpMp97-0-2dc2fe71c46974ae9fcbacea3f5e671f)
上述因为元素是8位整数,所以执行x.itemsize,所得的结果是1。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P36_1584.jpg?sign=1738983250-707kaIm8kl2FzAQ2j2KlDDPCXqQpfG8Q-0-6ddd8513f29821ec023e752872eb6486)
实例6:浮点数数组的建立与打印。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P36_1587.jpg?sign=1738983250-POMqoQVefCLQ3gecJFEvZMYDuAn8Epm9-0-8e6ef897c88421ae9d26a45058f6a0a8)
上述所建立的一维数组如下所示。
![](https://epubservercos.yuewen.com/1BEC8A/31397881107141406/epubprivate/OEBPS/Images/Figure-P36_1590.jpg?sign=1738983250-gUVSaTjE3bJnKC4FlCRrT5YwnFLLTUqi-0-023d534eb824fdcf737dd8aab0cbfd3a)