2017-04-09 10 views
-1

が、私は、文字列の私のnumpyの配列でこれをやりたいnumpy配列文字列でset関数を使用するには?

>>> 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') 

をやっていることであり、私は全体の設定値を取得したいです行だけでなく、数の少ない配列になります。どうしたらいいですか?

+0

あなたは「だけでなく、行」とはどういう意味ですか?あなたの配列は1次元なので、行はありません。あなたは、配列内の文字列の個々の文字がセットに含まれていてほしいと言っていますか? – 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

関連する問題