python的numpy模块是否以相同的方式处理行向量和列向量?

时间:2014-01-25 13:28:32

标签: python numpy

我正在使用numpy矩阵来了解有关子矩阵的更多信息。下面是我尝试提取行向量和列向量时得到的结果:

>>> import numpy as np
>>> x = np.zeros(shape=(8,9))
>>> x
array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])
>>> y = x[:, 0]
>>> y
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])
>>> z = x[0, :]
>>> z
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])

事实是行向量和列向量都以相同的方式显示。所以我不知道他们是被视为相同还是不同。

1 个答案:

答案 0 :(得分:2)

您当前只从数组中获取单个行/列,因此这是表示返回的行/列的1-D视图的最佳方式。

使用切片来获得如下结果:

In [16]: x[:,:1]
Out[16]: 
array([[ 0.],                                                                                    
       [ 0.],                                                                                    
       [ 0.],                                                                                    
       [ 0.],                                                                                    
       [ 0.],                                                                                    
       [ 0.],                                                                                    
       [ 0.],                                                                                    
       [ 0.]])                                                                                   

In [17]: x[:1,:]                                                                                 
Out[17]: array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])