Найти - Пользователи
Полная версия: matrix has python or python
Начало » Python для экспертов » matrix has python or python
1 2
rasser_depressnjak
продолжим с матрицами, с использованием слегка прояснилось, а вот с реализацией библиотек замутнилось
пример на перемножение матриц в маткаде( на прикрепленом рисунке ) все работает
та же конструкция с питоне
сбоит - с чебо бы это…

исходный код :
import random
from numpy import *


a1 = array([, , ])
print “a1= ”,a1

b1 = array([, ])
print “b1= ”,b1

c=multiply(a1, b1)

Ругань пайтона:
a1= [

]
b1= [
]
Traceback (most recent call last):
File “C:\Python24\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py”, line 307, in RunScript
debugger.run(codeObject, __main__.__dict__, start_stepping=0)
File “C:\Python24\Lib\site-packages\pythonwin\pywin\debugger\__init__.py”, line 60, in run
_GetCurrentDebugger().run(cmd, globals,locals, start_stepping)
File “C:\Python24\Lib\site-packages\pythonwin\pywin\debugger\debugger.py”, line 631, in run
exec cmd in globals, locals
File “C:\Python24\03.py”, line 11, in ?
c=multiply(a1, b1)
ValueError: shape mismatch: objects cannot be broadcast to a single shape
>>>
j2a
А ты попробуй приведенные матрицы в маткаде перемножить, и увидешь, что питон вполне правильно ругается.
nss
rasser_depressnjak
c=multiply(a1, b1)
Нужно просто читать документацию, тогда ничего замутняться не будет. Еще желательно знать терминологию на английском. То что ты хочешь получить, буржуи называют “Dot product”

numpy.multiply перемножает матрицы поэлементно, тебе нужен numpy.dot

In [17]: a1 = array([[1.1, 4], [2, 6], [3, 9]])

In [18]: b1 = array([[1, 3.0 , 1, 1], [0 , 2, 5 ,2]])

In [19]: dot(a1,b1)
Out[19]:
array([[ 1.1, 11.3, 21.1, 9.1],
[ 2. , 18. , 32. , 14. ],
[ 3. , 27. , 48. , 21. ]])
rasser_depressnjak
спасибо, теперь все замечательно входит и выходит
ну и результат маткада и питона совпадают
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB