使用括号而不是括号

时间:2017-09-19 17:02:26

标签: python numpy

给定一个numpy数组,a,如何打印它,以便用括号而不是括号括起来?

import numpy as np
a = np.array([1,2,3])
>>> print(a)
[1 2 3]

我想

>>> print(whatever)
(1 2 3)

2 个答案:

答案 0 :(得分:2)

如上面评论(@Psidom)中所述的选项是

  • 使用str()将numpy输出转换为字符串。
  • 然后使用replace()手动用括号替换左括号和右括号。 replace()是一个字符串方法

    import numpy as np a = np.array([1,2,3]) print(a) [1 2 3] print(str(a).replace('[', '(').replace(']', ')')) (1 2 3)

在这种情况下,str()将输出从numpy转换为字符串表示形式,以便您可以利用与字符串关联的各种字符串方法。

将输出转换为字符串后,您可以立即调用replace()方法...因为replace()方法的输出也是字符串,所以您可以链接replace()方法依次进行多次替换。

使用链式replace()方法的替代方法是创建一个正则表达式并使用re.sub()之类的东西,但对于像这样的简单情况来说,这似乎有些过分。

答案 1 :(得分:1)

numpy使用[]就像list一样。结构化数组记录标有()以突出显示它们的区别:

In [286]: a = np.array([1,2,3])
In [287]: a.view('i,i,i')
Out[287]: 
array([(1, 2, 3)],
      dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<i4')])

提取记录会产生类似于显示的元组:

In [288]: a.view('i,i,i')[0]
Out[288]: (1, 2, 3)

In [289]: tuple(a.tolist())
Out[289]: (1, 2, 3)

使用()并且省略逗号的正常显示不是。为此,您需要自己进行格式化,或在公共显示器上执行某种替换。

如果检查程序需要()而没有逗号,那就有问题了。这不正常。