这在我的数组(Python)中\n来自何处?

这在我的数组(Python)中\n来自何处?,python,arrays,newline,word-wrap,Python,Arrays,Newline,Word Wrap,我正在尝试为以下numpy数组创建文本字符串: A = array([0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]) 我可以通过这行代码轻松完成这项工作: text = f'{A}' 我遇到的问题是,每当我使用这个f{}从数组中创建字符串时,它都会输出相同的数组,但在某些字符后面有一个\n: text '[0. 0. 0. 0.64 0. 0. 0. 0. 0. 0. 0. 0.

我正在尝试为以下numpy数组创建文本字符串:

A = array([0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0])
我可以通过这行代码轻松完成这项工作:

text = f'{A}'
我遇到的问题是,每当我使用这个f{}从数组中创建字符串时,它都会输出相同的数组,但在某些字符后面有一个\n:

text
'[0.   0.   0.   0.64 0.   0.   0.   0.   0.   0.   0.   0.   0.   0.\n 1.   0.   0.   0.  ]'
我试图在绘图标题中使用此数组,因此我不希望数组文本换行到新行,因为它会使读取/查看变得混乱


我尝试在文本上使用rstrip('\n'),但它没有删除'\n'。有人知道发生了什么事吗?为什么字符串数组中会出现这个\n?

您不需要声明
array()
来完成您试图执行的操作:

A = [0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]

print(A)
[0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]

print(f'{A}')
[0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0] 

A
[0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
看起来您正在那里创建一个NumPy N维数组,然后将其转换为
字符串
,因此当您调用
print()
时,它正在打印该数组的字符串表示形式。除非您特别需要NumPy阵列,否则您可以像上面一样进行操作,或者如果需要:

    from numpy import array
    A = [0, 0, 0, 0, 0.64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
    B = array(A)

    print(B)
    [0.   0.   0.   0.   0.64 0.   0.   0.   0.   0.   0.   0.   0.   0.
     0.   1.   0.   0.   0.  ]

    print(f'{B}')
    [0.   0.   0.   0.   0.64 0.   0.   0.   0.   0.   0.   0.   0.   0.
     0.   1.   0.   0.   0.  ]

     B
     array([0.  , 0.  , 0.  , 0.  , 0.64, 0.  , 0.  , 0.  , 0.  , 0.  , 0.  ,
       0.  , 0.  , 0.  , 0.  , 1.  , 0.  , 0.  , 0.  ])
如果必须将NumPy数组呈现为
字符串
,则可以执行以下操作:

  text = f'{A}'
  text = text.replace("\n","")
或者,正如拉蒙·马尔克斯(Ramón Márquez)也提到的,您可以简单地增加
打印选项
线宽:

numpy.set_printoptions(linewidth=96)
有关NumPy阵列的文档:

有关NumPy打印选项的文档:

它与

如果将线宽设置为96-
str(A)
的长度,而没有任何
\n
加1-,则不会插入换行符:

numpy.set_printoptions(linewidth=96)

这可以工作
text='''.join(str(A)中i的i.strip())
非常感谢这篇全面的文章,现在这更有意义了