Ввод:
import numpy as np
a = np.array([
[0, 1, 0],
[1, 0, 0]
])
Желаемый вывод:
b = np.array([
[[0, 0],[1, 1], [0, 0]],
[[1, 1], [0, 0], [0, 0]]
])
Что я пробовал:
b = np.where(a == 0, np.array([0, 0]), np.array([1, 1]))
Приведенный выше код дает мне ValueError: operands could not be broadcast together with shapes (<a's dimentions>) (2,) (2,)
Редактировать : плохой пример с моей стороны. Я думал, что если сделать это проще, это сделает его более читабельным. Но я не обязательно хочу ones
вместо 1 и zeros
вместо 0, и ввод не ограничен 0 и 1. Вместо этого я хочу, чтобы на входе было что-то вроде:
a = np.array([
[0, 1, 0],
[1, 2, 0]
])
, а на выходе было:
b = np.array([
[[5, 6],[8, 2], [5, 6]],
[[8, 2], [7, 4], [5, 6]]
])