2017-04-09 27 views
-1

我想這樣做,在我的琴絃的numpy的陣列如何使用numpy數組字符串設置函數?

>>> set('Hello world') 
{' ', 'H', 'd', 'e', 'l', 'o', 'r', 'w'} 

這是我做了什麼

>>> x=np.array([[' X-ray is dangerous'],['Zebra crosses the road'],['I Love XYZ']]) 

>>>set(x.flatten()) 
{' X-ray is dangerous', 'I Love XYZ', 'Zebra crosses the road'} 

>>> np.unique(x) 
array([' X-ray is dangerous', 'I Love XYZ', 'Zebra crosses the road'], 
    dtype='|S22') 

見它不是得到所需要的輸出和我想要得到的全部設定值numpy數組,而不僅僅是行。我該怎麼做?

+0

你說的「不只是行」呢?你的數組是一維的,所以它沒有行。你是說你想讓集合包含數組中字符串的單個字符嗎? – BrenBarn

+0

@BrenBarn抱歉,我編輯了這個問題 – Eka

+0

如果您的問題已被解答,請您在正確的答案旁標上勾號?它有助於未來的讀者。 –

回答

1
>>> set("".join(x.flatten())) 
{'r', ' ', 'g', 'y', 'h', 'I', 'd', '-', 'a', 'i', 'n', 'Z', 's', 'o', 't', 'b', 'v', 'c', 'e', 'Y', 'X', 'u', 'L'} 

或者,如果你關心非常大numpy陣列:

>>> data = set() 
>>> for row in x.flatten(): 
...  data.update(row) 
... 
>>> 
# {'r', ' ', 'g', 'y', 'h', 'I', 'd', '-', 'a', 'i', 'n', 'Z', 's', 'o', 't', 'b', 'v', 'c', 'e', 'Y', 'X', 'u', 'L'} 
+0

我編輯了多行的問題,但它不起作用 – Eka

+0

已更新,以處理您的新情況。你已經找到'x.flatten()';這正是你在這裏所需要的。 –

+0

感謝您的及時回覆,我已接受您的答案:) – Eka

相關問題