2016-08-10 8 views
1

私は30以上のフィールドを持つdtypeを持っています。私はdtypeと2つのオブジェクトを比較して、どのフィールドが不等であるかを正確に知りたいと思います。自明な解は、ハードコードにif文のシリーズの各フィールドの比較次のようになります。numpy - カスタムdtypを簡単に比較するにはどうすればよいですか?

if (obj1['field1']==obj2['field1']) DO_SOMETHING 
if (obj1['field2']==obj2['field2']) DO_SOMETHING 
# ... 

は、カスタムdtypesで2つのオブジェクトを比較し、一致してフィールドやないかを正確に知るための良い方法はありますか?

答えて

2

オブジェクトのdtypeフィールドには、OBJECT.dtype.namesでアクセスできます。したがって:

# obj1 and obj2 are elements in a numpy array with a custom dtype 
for field in obj1.dtype.names: 
    if obj1[field]==obj2[field]: 
     # DO_SOMETHING 
関連する問題