2017-10-10 104 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