我正在尝试打印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]]
答案 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_1d
,atleast_3d
选项)