垂直打印numpy数组的一维切片

时间:2017-04-21 00:05:44

标签: python arrays numpy

我正在尝试打印numpy数组的垂直切片,使其垂直显示但始终水平打印。 给定这个方阵:

a = np.ones([5,5])

我试过了:

print a[:,1]
print np.reshape(a[:,1], (1,-1))
print a[:,1].T
print [a[:,1].T]

给我:

[ 1.  1.  1.  1.  1.]
[[ 1.  1.  1.  1.  1.]]
[ 1.  1.  1.  1.  1.]
[array([ 1.,  1.,  1.,  1.,  1.])]

我想看看:

[[1],
 [1],
 [1],
 [1], 
 [1]]

4 个答案:

答案 0 :(得分:1)

您需要添加一个新轴:

a[:, 1, None]
Out: 
array([[ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.]])

a[:, 1, np.newaxis]
Out: 
array([[ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.]])

答案 1 :(得分:1)

我将第二个索引器用括号

包装
a[:, [1]]

array([[ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.]])

答案 2 :(得分:1)

添加维度的另一种方法:

a[:,1:2]
Out:
array([[ 1.],
   [ 1.],
   [ 1.],
   [ 1.],
   [ 1.]])

答案 3 :(得分:0)

只是替代方案,我有时会使用atleast_2d

np.atleast_2d(a[:, 1]).T

(还有atleast_1datleast_3d选项)