Как расставить подрешетки в NumPy? - PullRequest
0 голосов
/ 18 марта 2019

Я хочу выполнить точечное произведение между подмассивами двух массивов.
Вот код, использующий цикл.
Есть ли более лаконичный способ выполнить такую ​​операцию без циклов?

result = numpy.empty(100)
A = numpy.random.randn(100, 1, 3)
B = numpy.random.randn(100, 3, 1)
for i in range(100):
    result[i] = A[i].dot(B[i])

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

U сделал лучший ответ. Я использую:

C = numpy.transpose(numpy.sum(A*numpy.reshape(B,(100,1,3)),2))
0 голосов
/ 18 марта 2019

Я обнаружил, что numpy.einsum() отлично бы удовлетворил мою потребность.

numpy.einsum('ijk,ikj->i', A, B)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...