从数组中选择某些值

时间:2013-11-03 20:55:24

标签: python arrays numpy

所以我用了

numpy.genfromtxt('...', dtype=None, usecols=
(0,6,7,8,9,19,24,29,31,33,34,37,39,40,41,42,43,44), names=
['sn','off1','dir1','off2','dir2','type','gal','dist','htype','d1','d2','pa','ai','b','berr
','b0','k','kerr']))

阅读一些数据。

数组type包含许多不同的字符串,例如Ia,II等。

如何创建仅使用type

的某些字符串的变量 例如,我想将TypeIa =设置为数组type的所有字符串'Ia','Iabg'和'Iat'。

1 个答案:

答案 0 :(得分:1)

您可以使用filter内置功能。另外,为简单起见,我在下面的示例中使用了functools.partial。你也可能觉得它很方便。

首先,我准备了一些测试数据,为简单起见,这里不公开代码

>>> type(data)
<type 'numpy.ndarray'>
>>> data['type']
['0-19' '1-19' '2-19' '3-19' '4-19' '5-19' '6-19' '7-19' '8-19' '9-19']

然后,让我们定义过滤功能

from functools import partial
def startswith(string, prefix):
    return str.startswith(string, prefix)

startswith8 = partial(startswith, prefix='8-')

最后,我们准备应用过滤功能:

>>> filter(startswith8, data['type'])
['8-19']