Код: Выделить всё
import numpy as np
np.random.seed(0)
a1 = np.random.rand(4, 5, 3)
a2 = np.random.rand(6, 3)
m = np.random.rand(4, 5, 6) >= 0.7
Мое текущее способ повторить a1 и a2 arpas M1xm2x ... xmpxn1xn2x ... xnq , а затем индексировать их, используя m :
Код: Выделить всё
a1_shape, a2_shape = a1.shape[:-1], a2.shape[:-1]
t_shape = a1_shape + a2_shape + (3,)
a1 = a1[..., None, :].repeat(np.prod(a2_shape), axis=-1).reshape(t_shape)
a2 = a2[None, ..., :].repeat(np.prod(a1_shape), axis=0).reshape(t_shape)
b1, b2 = a1[m, :], a2[m, :]
Есть ли способ получить одинаковый B1 и b2
Подробнее здесь: https://stackoverflow.com/questions/796 ... -dimension