2017-08-05 84 views
-6

比方说,我有以下阵列 -从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 

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

谢谢!

+1

'float form(not string)'是什么意思?你想要一个两个浮动列表?因为打印看起来像'[7.0,6.0]'。那是你要的吗? –

+1

您将得到与您的数据结构实际表示混淆的数据结构的字符串表示形式。如果你想用你的数据做数学,你拥有的数组是没有问题的。如果你想在屏幕或文件上打印'7,6',可以使用各种阵列打印和字符串操作工具。 – user2357112

+0

你需要认识的一件事是你的数组有**没有括号**和**没有逗号**。它的'repr'表示有括号和逗号。如果要打印数组中不同的字符串表示形式,则需要更改打印逻辑,而不是阵列。 – user2357112

回答

1

只是尽量将其转换为一个列表:

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

你开始用一个二维数组,并选择部分。结果是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显示方法。但总是,对象和显示方法之间存在区别。不要把一个误认为另一个。