NumPy的主要操作对象是同类型的多维数组,数组中的所有元素类型都是相同的,数组对象名是ndarray,别名是array。
一、创建数组
可以有多种方式创建NumPy数组:(1)使用NumPy的array函数从Python列表中创建数组,数组类型由列表中的数据类型确定;(2)使用NumPy的zeros函数创建数组元素全部为0的数组,默认情况下数组元素的类型为float64;(3)使用NumPy的ones函数创建数组元素全部为1的数组,默认情况下数组元素的类型为float64;(4)使用NumPy的empty函数创建数组元素为随机内容的数组,随机内容取决于存储器的状态;(5)使用NumPy的arange函数创建等间隔的数字数组。
1、使用NumPy的array函数创建数组
使用NumPy的array函数可以创建1维、2维、……、n维数组,array函数要求传入Python列表数据,传入Python列表数据的嵌套层次决定了创建数组的维数。下面给出了创建1维和2维数组的案例,更多维数组的创建与2维数组的创建类同。
(1) 创建1维数组
要创建1维数组,只需在array函数中传入单层列表数据即可。在程序中使用NumPy数学计算包,需要将NumPy包导入到程序中。
下面的代码创建了整数类型(int32)的1维数组,数组变量名称是dim1,np是numpy包的引用名称,传入到array函数的是单层列表。
(2)创建2维数组
只要在array函数中传入两层嵌套的列表数据即可创建2维数组。下面的代码创建了浮点类型(float64)的2维数组。
2、使用NumPy的zeros、ones、empty函数创建数组
使用NumPy的zeros、ones、empty函数可以创建指定维数的数组,zeros函数用0填充所有的数组元素,ones函数用1填充所有的数组元素,empty函数用随机内容填充所有的数组元素。
(1)创建1维数组
下面的代码分别使用zeros、ones、empty函数创建了a、b、c三个1维数组。a数组有3个元素,元素内容都为0,b数组有5个元素,元素内容都为1,c数组有3个元素,元素内容都为0(填充的元素内容机内容取决于存储器的状态)。
(2)创建2维或更多维数组
使用zeros、ones、empty函数创建2维或更多维数组时,需要传入Python元组数据,元组内的元素个数(元组长度)指定了数组的维度,元素的值指定了当前元素所在的数组维度所包含元素的个数。例如:使用元组(3,4)创建的a数组是2维数组,第1维有三个元素,第2维有4个元素;使用元组(3,2,4)创建的d数组是3维数组,第1维有3个元素,第2维有2个元素,第3维有4个元素。
(3)创建指定类型的数组
使用zeros、ones、empty函数可以创建指定数据类型的数组,zeros、ones、empty函数创建数组时,默认的数据类型是float64,如果需要创建其它数据类型的数组,可以在函数中指定数据类型。
下面的代码创建数据类型为complex的二维数组。
二、NumPy数组对象的属性
NumPy的array数组对象提供了一些关键属性,可以输出数组的特性。下表给出了array数组对象的关键属性名称及作用。
下面的代码创建了2维数组a,第1维有2个元素,第2维有3个元素。数组的总元素个数为2*3=6,数组元素的数据类型是int32,每个字节的元素长度是4个字节。