您可能可以使用结构化数组管理某些内容:
- 例如
names
,numbers
使用您的两个文件创建两个结构化数组。np.genfromtxt
不要忘记使用dtype=None
(让np.genfromtxt
猜测您的数据类型)和names=True
(应该从第一列读取字段名称),可能使用delimiter="\t"
.
你names
会有类似的东西dtype([('Name', '|S7'), ('Adress', '|S16')])
,你的类似的numbers
东西dtype([('Number', '<i8'), ('Ident', '<i8')])
。
之后,只需花哨的索引即可获得您的选择。例如,如果您想要 for 条目的names
索引"Unicorn Lane"
:
(idx,) = np.nonzero(names['Adress']=="Unicorn Lane")
(np.nonzero
应该返回一个带有一个元素的元组,一个索引数组)。以你的例子,idx = array([0])
...)
您可以将这些索引用作标识符,请记住,当您的标识符从 1 开始时,它们从 0 开始。因此,要选择与您找到numbers
的Ident
索引匹配的索引:
numbers[numbers['Ident'] == idx+1]
(请记住,在我们的示例中,idx=array([0])
对应于Ident==1
...)。
You should check that idx
is not empty (idx.size >0
). Otherwise idx+1
will be empty too, numbers['Ident']==idx+1
will evaluate to False
, and in NumPy, numbers[False]
is equivalent to numbers[0]
.