Если вы хотите получить подмножество полученного массива точечного произведения, просто возьмите подмножество, прежде чем использовать точку. Т.е., если вам нужна матрица 10х10 «левого верхнего» вывода, просто сделайте
np.dot(A.T[:10,:], B[:, :10])
Если вам нужны определенные индексы, вы можете использовать более причудливую индексацию. Например, если вам нужны индексы 3, 5 и 29, вы можете сделать что-то вроде этого:
indices = np.array([3, 5, 29]).reshape(-1, 1)
inner_all = np.arange(A.shape[0]).reshape(-1, 1)
result = np.dot(A.T[indices, inner_all.T], B[inner_all, indices.T])
Если вы, только для первой строки, хотите столбцы 1, 3 и 5:
rows = np.array([1]).reshape(-1, 1)
columns = rows = np.array([1, 3, 5]).reshape(-1, 1)
inner_all = np.arange(A.shape[0]).reshape(-1, 1)
result = np.dot(A.T[rows, inner_all.T], B[inner_all, columns.T])