2017-10-10 106 views
0

我身边有一个相当不错的外观,并不能找到一个简单的/一个线路的方式在numpy的阵列::剥离空格剥离空格在numpy的阵列

print(type(p)) 
print(p) 

<class 'numpy.ndarray'> 
[{' SPL', 'GPU', 'bcc'} {'ANZ ', 'ROI'} {'ANZ', 'bcc'} 
{'GPU', ' ANZ ', 'bcc'} {'bcc ', ' SPL'}] 

为::

[{'SPL', 'GPU', 'bcc'} {'ANZ', 'ROI'} {'ANZ', 'bcc'} 
{'GPU', 'ANZ', 'bcc'} {'bcc', 'SPL'}] 

试图

np.char.strip(p) 

结果

TypeError: string operation on non-string array 

因此,这是一个变相的列表吗?

小帮忙??!

+1

这实际上不是numpy的典型用例,我在这里看到使用它没有优势。那是什么?一组字符串? – sascha

回答

3

你套一个数组,所以在它们之间迭代。创建一组新的与所述剥离的元件,并创建新的数组:

p = np.array([{item.strip() for item in s} for s in p]) 

这使用一组理解来创建新的集合与所述汽提单元。原始数组在列表理解中迭代,然后馈送到np.array()以创建一个新数组。

-1

这可能是由于您如何创建numpy数组。

下面的代码工作正常:

import numpy as np 

p = np.array([[" asdf ", " asdf " ], [" afhffh hfhf ", " a "]]) 
print(type(p)) 
print(p) 

p = np.char.strip(p) 
print(p) 

和输出:

<class 'numpy.ndarray'> 
[[' asdf ' ' asdf '] 
[' afhffh hfhf ' ' a ']] 
[['asdf' 'asdf'] 
['afhffh hfhf' 'a']] 
+2

我没有downvote。但只是一些评论:有时我们需要接受用户以某种特定格式存储数据的决定。通常用户是错误的,一些替代存储更好(他不知道),但这些情况往往通过评论/问题/讨论解决,而无需添加答案。假设我们可以完全改变他的数据(set - > array是一个巨大的差异)在一般情况下可能是非常错误的。 – sascha

+0

我没有冷静下来,也不打算这样做。然而,提供代码做不同的事情,没有体面的动机或理由,是非常令人沮丧的。 – npross