NumPy附加到1列向量

时间:2014-06-02 15:34:24

标签: python arrays numpy

我正在尝试使用k-means在图像(480 x 640)中聚类像素,因此我尝试初始化一个空的numpy数组,它代表一个1列向量。

我想要实现的是从2D数组获取所有像素值并将它们添加到一维垂直向量中,如下所示:

[ [ value ],
  [ value ],
  ...
  [ value ] ]

2 个答案:

答案 0 :(得分:2)

numpy.reshape()你想要的是什么吗?

a = np.array([[1,2,3], [4,5,6]])
a.reshape(6,1)
array([[1],
       [2],
       [3],
       [4],
       [5],
       [6]])

答案 1 :(得分:1)

假设你有一个矩阵640 x 480:

>>> a=np.arange(640*480).reshape(640,480)
>>> a
array([[     0,      1,      2, ...,    477,    478,    479],
       [   480,    481,    482, ...,    957,    958,    959],
       [   960,    961,    962, ...,   1437,   1438,   1439],
       ..., 
       [305760, 305761, 305762, ..., 306237, 306238, 306239],
       [306240, 306241, 306242, ..., 306717, 306718, 306719],
       [306720, 306721, 306722, ..., 307197, 307198, 307199]])

您可以像这样分配一个柱状值:

>>> a[:,479]=0
>>> a
array([[     0,      1,      2, ...,    477,    478,      0],
       [   480,    481,    482, ...,    957,    958,      0],
       [   960,    961,    962, ...,   1437,   1438,      0],
       ..., 
       [305760, 305761, 305762, ..., 306237, 306238,      0],
       [306240, 306241, 306242, ..., 306717, 306718,      0],
       [306720, 306721, 306722, ..., 307197, 307198,      0]])
#                                                         ^^^ Note the 0 here

您可以像这样获取柱状值:

>>> a[:,478]
array([   478,    958,   1438,   1918, ..., 306238, 306718, 307198])