Я перевожу код языка J на Python, но способ применения функции Python кажется мне немного неясным ...
В настоящее время у меня есть (3, 3, 2) матрица A и(3, 3) матрица B.
Я хочу разделить каждую матрицу в A на строки в B:
A = np.arange(1,19).reshape(3,3,2)
array([[[ 1, 2],
[ 3, 4],
[ 5, 6]],
[[ 7, 8],
[ 9, 10],
[11, 12]],
[[13, 14],
[15, 16],
[17, 18]]])
B = np.arange(1,10).reshape(3,3)
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
То есть результат будет выглядеть как
1 2
1.5 2
1.66667 2
1.75 2
1.8 2
1.83333 2
1.85714 2
1.875 2
1.88889 2
для первой матрицы результата, способ, которым я хочу вычислить, следующий:
1/1 2/1
3/2 4/2
5/3 6/3
Я пытался
np.apply_along_axis(np.divide,1,A,B)
, но он говорит
operands could not be broadcast together with shapes (10,) (10,10,2)
Любой совет?Заранее спасибо =]
пс.J-код:
A %"2 1 B
Это означает «делить каждую матрицу (» 2) из A на каждую строку («1) из B»
или просто
A % B