我有python代码,它将1到78之间的元素添加到列表中,然后将其转换为3x26矩阵。我使用PyCharm IDE,它在每行的第24个元素后包装结果。这是代码:
import numpy as np
mylist=[]
for i in range(1,79):
mylist.append(i)
data=np.matrix([mylist])
x=(data.reshape(3,26))
print(x)
这就是结果:
[[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
25 26]
[27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
51 52]
[53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
77 78]]
Process finished with exit code 0
我想要做的是将每一行显示在一行中(例如25,26和其他两行未包装到新行)。我怎样才能做到这一点 ?这个问题pythonic或PyCharm有关吗?在此先感谢您的帮助!
答案 0 :(得分:1)
这与PyCharm无关。您将在IDLE或Python命令行解释器中获得完全相同的结果。
它与Python无关。
当您的代码调用print(x)
时,您要求x
的字符串表示形式,即numpy
矩阵。
numpy
为您进行转换,它打破了输出线,以便很好地适应通用输出控制台。它不知道你在使用PyCharm。
针对此特定问题的快速解决方法是更改numpy
的默认输出行长度(即75)。
numpy.set_printoptions(linewidth=90)
但是要完全控制输出,您必须自己格式化矩阵,而不是依赖numpy
提供的默认字符串转换。