我正在尝试使用k-means在图像(480 x 640)中聚类像素,因此我尝试初始化一个空的numpy数组,它代表一个1列向量。
我想要实现的是从2D数组获取所有像素值并将它们添加到一维垂直向量中,如下所示:
[ [ value ],
[ value ],
...
[ value ] ]
答案 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])