0

所以我用

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”。

4

1 回答 1

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']
于 2013-11-03T22:27:57.063 回答