当要创建一个空的行向量,或一个空的一维数组占位时,往往用numpy.zeros()创建元素均为0的矩阵,当想创建的矩阵只有一行时,很容易使用numpy.zeros((1,n)),创建一个一行n列的矩阵,也很理所当然的认为所创建的矩阵是一维的,使用一维方法调用其元素就会产生错误,因为这创建的是一个二维的矩阵。
创建一维矩阵
a=np.zeros(3)与a=np.zeros((3))与a=np.zeros((3,))与a=np.zeros([3])与a=np.zeros([3,])等价:
创建二维矩阵:
注意此处创建的并不是一维数组,而是二维,即使它只有一行,同理如下即使只有一列
创建的数组维数看zeros()中传入元组或列表的长度,注意此处(3,)、[3,]元组长度为一。
所以要注意对于一维[0. 0. 0.]和二维[[0. 0. 0.]]中的元素取用方式不一样。
一维用a[0]、a[1]、a[2]
二维用a[0,0]、a[0,1]、a[0,2]