首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何打印无括号的Numpy数组?

如何打印无括号的Numpy数组?
EN

Stack Overflow用户
提问于 2012-02-20 19:05:28
回答 5查看 70.7K关注 0票数 42

我想把a = [1,2,3,4,5]转换成a_string = "1 2 3 4 5"。实际的numpy数组非常大(50000x200),所以我认为使用for loops太慢了。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-20 19:12:39

您可以使用string中的join方法:

代码语言:javascript
复制
>>> a = [1,2,3,4,5]
>>> ' '.join(map(str, a))
"1 2 3 4 5"
票数 58
EN

Stack Overflow用户

发布于 2018-06-20 03:04:34

可能有点老生常谈,但我只是在使用np.array2string之后把它们切掉了,所以:

代码语言:javascript
复制
import numpy as np

a = np.arange(0,10)
a_str = np.array2string(a, precision=2, separator=', ')
print(a_str[1:-1])

结果:

代码语言:javascript
复制
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9

np.array2string也有很多选项,所以你可以设置你的列宽,这对处理大量数据非常有帮助:

代码语言:javascript
复制
a = np.arange(0,15)
a_str = np.array2string(a, precision=2, separator=', ', max_line_width=15)
print(' ' + a_str[1:-1])

提供:

代码语言:javascript
复制
       0,  1,  2,
       3,  4,  5,
       6,  7,  8,
       9, 10, 11,
      12, 13, 14

它将在数组元素处巧妙地拆分。请注意附加到字符串开头的空格,以便在删除初始括号后对齐第一行。

票数 12
EN

Stack Overflow用户

发布于 2012-02-20 19:34:36

Numpy为这个array_strarray_repr提供了两个函数--这两个函数中的任何一个都应该能满足您的需要。由于您可以使用这两种方法中的任何一种,下面是每种方法的一个示例:

代码语言:javascript
复制
>>> from numpy import arange, reshape, array_str
>>> M = arange(10).reshape(2,5)
>>> M
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
>>> array_str(M)
'[[0 1 2 3 4]\n [5 6 7 8 9]]'
>>> array_repr(M)
'array([[0, 1, 2, 3, 4],\n       [5, 6, 7, 8, 9]])'

这两个函数都是高度优化的,因此,应该优先于您自己编写的函数。当处理这种大小的数组时,我想你会想要你能得到的所有速度。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9360103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档