2017-04-09 29 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

相关问题