簡體   English   中英

垂直打印 numpy 數組的一維切片

[英]Print a 1-D slice of a numpy array vertically

我正在嘗試打印 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.]])

我將第二個索引器放在方括號中

a[:, [1]]

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

添加尺寸的另一種方法:

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

你也可以使用np.vstack()

print(np.vstack(a[:,1]))
[[1.]
 [1.]
 [1.]
 [1.]
 [1.]]

另一個選擇是,我有時使用atleast_2d

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

(也有atleast_1datleast_3d選項)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM