У меня есть массив данных с формой (256,256,3)
, где каждое значение на оси (0,1)
имеет значение [1,0,0], [0,1,0],[0,0,1]
или [1,1,0]
.
Я хочу преобразовать это в массив формы (256,256,4)
где значения отображаются следующим образом:
[1,0,0] -> [1,0,0,0]
[0,1,0] -> [0,1,0,0]
[0,0,1] -> [0,0,1,0]
[1,1,0] -> [0,0,0,1]
Я пытался использовать al oop следующим образом, но это не работает.
for element in original_array:
if element == [1, 0, 0]:
new_array[:,:,0] = 1
elif element == [0, 1, 0]:
new_aray[:,:,1] = 1
elif element == [0, 0, 1]:
new_array[:,:,2] = 1
elif element == [1, 1, 0]:
new_array[:,:,3] = 1
Я также пробовал подобный код но я не уверен, как правильно его реализовать:
new_array[:,:,0][original_array == [1,0,0]] = 1
new_array[:,:,1][original_array == [0,1,0]] = 1
new_array[:,:,2][original_array == [0,0,1]] = 1
new_array[:,:,3][original_array == [1,1,0]] = 1
Как правильно реализовать эти два метода и какие альтернативные методы я могу использовать для выполнения sh этой задачи?