Python 在numpy中打印子数组与Matlab一样
如何像Matlab那样以numpy打印子数组?我有一个3乘10000的数组,我想查看前20列。在Matlab中可以编写Python 在numpy中打印子数组与Matlab一样,python,matlab,numpy,Python,Matlab,Numpy,如何像Matlab那样以numpy打印子数组?我有一个3乘10000的数组,我想查看前20列。在Matlab中可以编写 a=zeros(3,10000); a(:,1:20) Columns 1 through 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
a=zeros(3,10000);
a(:,1:20)
Columns 1 through 15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 16 through 20
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
然而在努比
import numpy as np
set_printoptions(threshold=nan)
a=np.zeros((3,10000))
print a[:,0:20]
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0.]]
如您所见,numpy打印第一行、第二行、第三行。我希望它保持列结构,而不是行结构
多谢各位
PS:一个解决方案是例如
print a[:,0:20].T
[[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
但是,它会在屏幕上消耗比预期多得多的空间。如果numpy有这个选项那就太好了这能满足你的需求吗
>>> for item in a[:,0:20].T:
print '\t'.join(map(str,item.tolist()))
还是这个
>>> for item in a[:,0:20]:
print '\t'.join(map(str,item.tolist()))
非常感谢你花时间回答这个问题,但是。。。这是一种工作方式,我正在寻找一种方法来指定我希望numpy如何打印二维数组。如果您的数组有几行但有很多列,并且您不介意看到它打印得有点扭曲,您可以使用
print a.t
打印数组的横截面。另外,您似乎必须导入numpy两次,使用numpy import*中的一次
set\u printpoptions
和nan
都来自numpy名称空间。您是否有可能在IPython中使用pylab模式?还有两种(janky)解决方案:您可以使用set\u printoptions
中的linewidth
选项来增加每行的水平空间(例如np.set\u printoptions(linewidth=200)
),或者您可以尝试将CT Zhu的答案与set_string_函数
相结合,以返回您想要的数组。我使用的是iPython笔记本,我使用的是numpy import的东西,但在这里我尝试将代码最小化,但忘记了。:)linewidth选项工作正常,我希望接受该解决方案,但问题是,由于我使用的是iPython笔记本,笔记本会限制块的宽度和输出。因此,尽管我对提供的解决方案感到满意,但将来如果我想显示阵列的长视图,我希望有一种简单的方法让numpy自动断开连接线