In [501]: users = numpy.empty(10, "U25, int16, int16, int16")
In [503]: users['f0'][1]='Jim'
Вы можете протестировать поле так же, как и обычный 1d-массив:
In [504]: users['f0']=='Jim'
Out[504]:
array([False, True, False, False, False, False, False, False, False,
False])
In [505]: np.where(_)
Out[505]: (array([1]),)
Но для тестирования целых записей вы должны использовать тестовый массив того же dtype:
In [506]: test = np.array(('Jim',0,0,0),dtype=users.dtype)
In [507]: test
Out[507]:
array(('Jim', 0, 0, 0),
dtype=[('f0', '<U25'), ('f1', '<i2'), ('f2', '<i2'), ('f3', '<i2')])
In [508]: users==test
Out[508]:
array([False, True, False, False, False, False, False, False, False,
False])
Элементы (записи) отображаются как кортежи, но не
In [511]: type(users[1])
Out[511]: numpy.void
In [512]: type(users[1].tolist())
Out[512]: tuple
Тестирование их на кортежи даст предупреждение о будущем.