从numpy数组中删除括号

时间:2017-08-05 01:45:17

标签: python python-3.x numpy

我们说我有以下数组 -

X = np.array([[0, 1,5], [3, 7,6], [11,3,2]]) 

然后我做 -

X[1,np.delete(range(3),0)]

哪个给出 -

array([7, 6])

基本上,我想留下 -

7, 6

以浮动形式(不是字符串)用逗号分隔,如果可能的话?

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试将其转换为列表:

>>> X[1,np.delete(range(3),0)].tolist()
[7, 6]

答案 1 :(得分:0)

您从2d数组开始,然后选择一个部分。结果是1d数组:

In [83]: X = np.array([[0, 1,5], [3, 7,6], [11,3,2]]) 
In [84]: X
Out[84]: 
array([[ 0,  1,  5],
       [ 3,  7,  6],
       [11,  3,  2]])
In [85]: y = X[1,1:]
In [86]: y
Out[86]: array([7, 6])

可以以各种方式显示。默认数组str显示使用括号而不使用逗号。 repr显示包含array名称

In [87]: str(y)
Out[87]: '[7 6]'

列表显示仍有括号:

In [88]: y.tolist()
Out[88]: [7, 6]
In [98]: tuple(y)
Out[98]: (7, 6)

我不知道任何内置结构显示为以逗号分隔的数字而没有某种括号。

但是如果你将每个元素转换成一个字符串,然后用,加入它们就可以得到你想要的纯字符串:

In [89]: ', '.join([str(i) for i in y])
Out[89]: '7, 6'

我们也可以使用%格式化格式化数组。这是np.savetxt在将数组行写入文件时所执行的操作。

In [91]: '%d, %d'%tuple(y)
Out[91]: '7, 6'
In [97]: '{}, {}'.format(*y)
Out[97]: '7, 6'

所有这些的基础是两件事:

  • 什么是对象 - 数组,列表,元组,字符串

  • 如何显示该对象。所有对象都有str方法和repr显示方法。但总是,对象及其显示方法之间存在区别。不要把一个误认为另一个。