垂直打印垂直阵列的一维切片
问题描述:
我正在尝试打印垂直切片的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]]
答
您需要添加一个新轴:
a[:, 1, None]
Out:
array([[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.]])
或
a[:, 1, np.newaxis]
Out:
array([[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.]])
+1
很好的答案! – piRSquared
+0
有时,您希望在末尾添加一个轴而不指定维数(例如可以是3D或2D的图像数组),在这种情况下,您可以使用省略号a [...,None] – paddyg
答
我包裹在括号
a[:, [1]]
array([[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.]])
答
另一种方式的第二索引增加一个维度:
a[:,1:2]
Out:
array([[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.]])
答
只是一个选择,我有时使用atleast_2d
:
np.atleast_2d(a[:, 1]).T
(也有atleast_1d
,atleast_3d
选项太)
虽然'A'为2d,'一个[:,1]'是1D(已卸下的尺寸)。 1d的移调仍然是1d。您必须保留或添加一个维度。 – hpaulj
@阿扬的回答很好,可以接受。考虑投票,以及:-) – piRSquared