Скажем, у меня есть массив значений NxN, и я хочу отсортировать эти значения, разбивая их на части, и для каждого бина вернуть копию оригинала, оставив только соответствующие значения, а все остальные заменить на ноль.Например, если у меня есть:
x = np.array([[1.1,2.2],[1.2,3.2]])
bins = np.array([1,2,3,4])
Тогда я хочу:
output = [[[1.1,0.0],[1.2,0.0]],[[0.0,2.2],[0.0,0.0]],[[0.0,0.0],[0.0,3.2]]]
Что у меня есть:
Z = np.shape(x)[0]
Y = np.shape(x)[1]
X = np.shape(bins)[0]-1
output = np.broadcast_to(x, (X,Y,Z))
Это создает массив, который содержиткопия оригинала для каждой корзины.Затем я решил использовать np.where, чтобы установить все значения, кроме правильных, равные 0.0, но у меня не получается, когда я пытаюсь понять, как именно это написать, и я не уверен, что это лучший способ, в частности.
Любые предложения будут оценены, спасибо.