Сравнение двух значений из двух разных классов "<class 'pydicom.valuerep.DSfloat'>" и <class 'numpy.ndarray'> в Python

Я хочу сравнить некоторые значения, используя "если" в коде ниже, но это не работает:

if Slice_num[person][i, [1]] == Z_pos:   # Slice_num[0][15, [1]] is ['-10.000000'] and Z_pos = -10.000000 
    absname = os.path.join(root, dcmfile)

Пример: значения в приведенных выше переменных равны:

Z_pos: -10.000000 , <class 'pydicom.valuerep.DSfloat'>
Slice_num[person][i, [1]]: ['-10.000000'] , <class 'numpy.ndarray'>

Итак, когда код выполняется, ifзаявление не может быть применено и следующая строка после ifЗаявление не может быть выполнено. в то время как значение (-10.000000) одинаково в обоих из них. Как решить проблему, чтобы ifСкажите найти их равными?

1 ответ

Значения на самом деле не совпадают. Slice_num[person][i, [1]] это numpy.ndarray, содержащий один элемент, а именно значение, которое вы хотите сравнить. Пытаться
Slice_num[person][i, [1]][0] == Z_pos

Другие вопросы по тегам