{"id":318726,"date":"2021-02-27T15:00:31","date_gmt":"2021-02-27T15:00:31","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=318726"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=318726","title":{"rendered":"\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0438 einsum"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0423\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u043b\u043e, \u043d\u043e \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c <strong>\u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. <\/strong>\u041d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 einsum \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0435\u0449\u0451 \u043c\u0435\u043d\u044c\u0448\u0435. \u041d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c <a href=\"https:\/\/stackoverflow.com\/questions\/26089893\/understanding-numpys-einsum\" rel=\"noopener noreferrer nofollow\">\u0435\u0441\u0442\u044c<\/a> \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 einsum \u043d\u0430 stack overflow, \u0430 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0430\u0439\u0442\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u0440\u0438\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430. \u0425\u043e\u0447\u0443 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0438 \u0432\u0441\u0435\u0445, \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e!<\/p>\n<hr>\n<h2>\u041e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430<\/h2>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043d\u0437\u043e\u0440\u043d\u043e\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0438 \u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043e\u0432 \u043a \u0442\u0435\u043d\u0437\u043e\u0440\u0430\u043c.<br \/>\u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043d\u0437\u043e\u0440\u0430\u043c\u0438, \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0441\u043c\u0443\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u0440\u043e\u043c\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0438 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430 \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c. \u041f\u0440\u0438\u043c\u0435\u0440:<br \/>&#171;\u0430 \u0441 \u0432\u0435\u0440\u0445\u043d\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i&#187; \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a <img decoding=\"async\" class=\"formula inline\" source=\"a^i\" alt=\"a^i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/555\/fe7\/546\/555fe7546d5629ddb80fe234de8d6f34.svg\">, \u0430 &#171;a \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0435 \u0441 \u0432\u0435\u0440\u0445\u043d\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i&#187; \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f <img decoding=\"async\" class=\"formula inline\" source=\"(a^i)^2\" alt=\"(a^i)^2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1ce\/200\/a59\/1ce200a59bcb00297b7c73dd5b520dd1.svg\">. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e-\u043d\u0430\u0447\u0430\u043b\u0443 \u044d\u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442 \u0432 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0438 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u043c, \u043d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u044b\u043a\u043d\u0443\u0442\u044c. <\/p>\n<p><strong>\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435: <\/strong>\u0434\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432\u0438\u0434\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"a_ix_i\" alt=\"a_ix_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2c2\/2cb\/916\/2c22cb916932a51d884d97d84203d674.svg\">\u0438\u043b\u0438<img decoding=\"async\" class=\"formula inline\" source=\"a_ix^i\" alt=\"a_ix^i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2e4\/575\/57e\/2e457557e0ff3080a98c0af5519bc2a2.svg\"> \u044f \u0431\u0443\u0434\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c <em>\u0442\u0435\u0440\u043c\u0430\u043c\u0438<\/em>.<\/p>\n<h2>\u041e \u0447\u0451\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430?<\/h2>\n<p>\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0437\u043d\u0430\u043a\u043e\u0432 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u0415\u0441\u0442\u044c \u0442\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u043e \u0438\u043b\u0438 \u0438\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430.<\/p>\n<p><strong>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u2116 1: <\/strong>\u0421\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b \u0432 \u043e\u0434\u043d\u043e\u043c \u0442\u0435\u0440\u043c\u0435.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440: \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\sum_{i = 1}^3 a_ix_i = a_1x_1 + a_2x_2 + a_3x_3\" alt=\"\\sum_{i = 1}^3 a_ix_i = a_1x_1 + a_2x_2 + a_3x_3\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/290\/74c\/506\/29074c50652d9bcffdbe2dbd60500bec.svg\" width=\"230\" height=\"53\"><\/p>\n<p>\u0421 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u044d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a_ix_i \\text{ \u0438\u043b\u0438 } a_ix^i\" alt=\"a_ix_i \\text{ \u0438\u043b\u0438 } a_ix^i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/14e\/638\/400\/14e6384000c1270228fb0fbd15fde35c.svg\" width=\"100\" height=\"22\"><\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u0437\u043d\u0430\u043a\u0430 \u0441\u0443\u043c\u043c\u044b, \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u0440\u043c. \u041e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0440\u043c\u0435 \u0438\u043d\u0434\u0435\u043a\u0441 i \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441 \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u043e\u043c \u043c\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 i, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435, \u043f\u043e \u0432\u0441\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0438\u043d\u0434\u0435\u043a\u0441. <\/p>\n<p><a class=\"anchor\" name=\"matrix-vector-multiplication\" id=\"matrix-vector-multiplication\"><\/a><\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440: \u043f\u0443\u0441\u0442\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"A \\in \\mathbb{R}^{m\\times n}\" alt=\"A \\in \\mathbb{R}^{m\\times n}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/957\/c47\/014\/957c470144960f5a10cdac24a3fd5aa0.svg\"> \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 <img decoding=\"async\" class=\"formula inline\" source=\"v \\in \\mathbb{R}^{n}\" alt=\"v \\in \\mathbb{R}^{n}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/716\/f41\/a21\/716f41a2128d5c7fd13e39fd106de273.svg\">. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u0435\u043a\u0442\u043e\u0440 <img decoding=\"async\" class=\"formula inline\" source=\"b  \\in \\mathbb{R}^{m}\" alt=\"b  \\in \\mathbb{R}^{m}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/194\/06c\/685\/19406c6852aa6d299d56c2c3c8858c3e.svg\">. \u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"b_i = \\sum\\limits_{j = 1}^n A_{ij} v_j, ~ i = 1, \\ldots, m\" alt=\"b_i = \\sum\\limits_{j = 1}^n A_{ij} v_j, ~ i = 1, \\ldots, m\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/95a\/880\/cf9\/95a880cf9697b233e420e6ca82cf5166.svg\" width=\"213\" height=\"54\"><\/p>\n<p>\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0437\u043d\u0430\u043a\u0430 \u0441\u0443\u043c\u043c\u044b:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"b_i = A_{ij}v_{j} = A_{ij}v^{j}\" alt=\"b_i = A_{ij}v_{j} = A_{ij}v^{j}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/903\/d41\/5a7\/903d415a70ffc4f49b0a68f795a262f5.svg\" width=\"139\" height=\"24\"><\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0432 \u0442\u0435\u0440\u043c \u0438\u043d\u0434\u0435\u043a\u0441 i \u0432\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u0438\u043d\u0434\u0435\u043a\u0441 j \u0432\u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 j. <\/p>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 1.<\/strong> \u0418\u043d\u0434\u0435\u043a\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0442\u0435\u0440\u043c \u0434\u0432\u0430\u0436\u0434\u044b, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <em>\u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c.<\/em><\/p>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 2.<\/strong> <em>\u0421\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c<\/em> \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432 \u0442\u0435\u0440\u043c\u0435, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438.<\/p>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u0451\u043d \u043b\u044e\u0431\u044b\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e <\/p>\n<ol>\n<li>\n<p>\u041d\u043e\u0432\u044b\u0439 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0442\u0435\u0440\u043c\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e\u0432\u044b\u0439 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u0438 \u0441\u0442\u0430\u0440\u044b\u0439 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441.<\/p>\n<\/li>\n<\/ol>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0449\u0435, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python:<\/p>\n<pre><code class=\"python\">for i in range(M):     for j in range(N):         b[i, j] = A[i, j] * v[j]<\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435, <a href=\"#matrix-vector-multiplication\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u0442<\/a> \u043f\u0440\u0438\u043c\u0435\u0440. \u0417\u0434\u0435\u0441\u044c \u0438\u043d\u0434\u0435\u043a\u0441 j \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c, \u0430 \u0438\u043d\u0434\u0435\u043a\u0441 i \u2013 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c. \u0421\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u043e \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c. \u0418\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 j \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435.<\/p>\n<p><strong>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u2116 2.<\/strong> \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0435\u0440\u043c\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0432\u0443\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"a_{ij}b_{ij}\" alt=\"a_{ij}b_{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e91\/414\/439\/e9141443945bfb8bdd72cfb70c1c4996.svg\">, \u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"a_{ii}b_{ij}\" alt=\"a_{ii}b_{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/625\/394\/daf\/625394dafc59c7a5390d4f85176b6132.svg\"> \u0438\u043b\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"a_{ij}b_{jj}\" alt=\"a_{ij}b_{jj}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5dd\/aa8\/856\/5ddaa8856baf82d11bf8ef17898c22d9.svg\">, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0442\u0430\u043a\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0441\u0451 \u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u044b\u0441\u043b.<br \/>\u0411\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"a_i^i\" alt=\"a_i^i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/898\/231\/502\/8982315026922141c8a77060dc028655.svg\">\u2013 \u0437\u0434\u0435\u0441\u044c i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c, \u0442.\u043a. \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"a_i^{jj}\" alt=\"a_i^{jj}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6ec\/556\/886\/6ec556886a69a1913dccb0de4fc8cc7d.svg\">\u2013 \u0437\u0434\u0435\u0441\u044c i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c, \u0430 j \u2013 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"a_{ii}^{jj}\" alt=\"a_{ii}^{jj}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c60\/0af\/ef0\/c600afef05c4d5191a519085a3f62331.svg\">\u2013 \u0437\u0434\u0435\u0441\u044c \u0438 i, \u0438 j \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"a_{ij}^{ij}\" alt=\"a_{ij}^{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a3b\/8a9\/fe9\/a3b8a9fe98c5a4e473ab17bd618406ed.svg\">\u2013 \u0437\u0434\u0435\u0441\u044c \u0438 i, \u0438 j \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"a_{ii}^{ij}\" alt=\"a_{ii}^{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/47b\/f37\/5d2\/47bf375d225fb3ea3211857c15135d87.svg\">\u2013 \u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443 (\u0438\u043d\u0434\u0435\u043a\u0441 i \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0442\u0435\u0440\u043c \u0442\u0440\u0438\u0436\u0434\u044b);<\/p>\n<p>\u0418\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u044b\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432 \u0442\u0435\u0440\u043c, \u043c\u044b \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u0440\u0445\u043d\u0438\u043c\u0438 \u0438 \u043d\u0438\u0436\u043d\u0438\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438, \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0445 \u0432\u043c\u0435\u0441\u0442\u0435. \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"a_{ij}b_{i} + a_{ji}b_{j}\" alt=\"a_{ij}b_{i} + a_{ji}b_{j}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/456\/059\/851\/456059851e16e244a690ae5757bb4274.svg\" width=\"90\" height=\"21\"><\/p>\n<p>\u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u0435\u0440\u043d\u043e, \u0438 \u043d\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0442 \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441 i \u0432\u0445\u043e\u0434\u0438\u0442 3 \u0440\u0430\u0437\u0430, \u043a\u0430\u043a \u0438 \u0438\u043d\u0434\u0435\u043a\u0441 j, \u043d\u043e \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0434\u0432\u0430 \u0442\u0435\u0440\u043c\u0430, \u0430 \u043d\u0435 \u043e\u0434\u0438\u043d, \u0438 \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0435\u0440\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e (\u043a\u0430\u043a \u0442\u043e\u0433\u043e \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e), \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p><strong>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u2116 3.<\/strong> \u0412 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u0445, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0441\u043b\u0435\u0432\u0430 \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0441\u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"b_i = A_{ij}v_{j}\" alt=\"b_i = A_{ij}v_{j}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68c\/57b\/28d\/68c57b28d7c892ed1898022e261003e9.svg\">\u2013 \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0432\u044b\u0448\u0435, \u0437\u0434\u0435\u0441\u044c i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"a_i = A_{ki}B_{kj}x_{j} + C_{ik}u_{k}\" alt=\"a_i = A_{ki}B_{kj}x_{j} + C_{ik}u_{k}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a4f\/ee0\/1f5\/a4fee01f573724144fe27fab95dbdb8b.svg\">\u2013 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0430: \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u0440\u043c \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 k \u0438 j \u0432\u0445\u043e\u0434\u044f\u0442 \u0434\u0432\u0430\u0436\u0434\u044b, \u0437\u043d\u0430\u0447\u0438\u0442, \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438, i \u0432\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0437\u043d\u0430\u0447\u0438\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0442\u0435\u0440\u043c \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 k \u0432\u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430, i \u2013 \u043e\u0434\u0438\u043d, \u0437\u043d\u0430\u0447\u0438\u0442, k \u2013 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439, i \u2013 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439. \u0412 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438\u043d\u0434\u0435\u043a\u0441 i \u0432\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c. \u0418\u0442\u043e\u0433: \u0438\u043d\u0434\u0435\u043a\u0441 i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0434\u043b\u044f \u043e\u0431\u0435\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u043f\u0440\u0430\u0432\u0438\u043b\u043e 3 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u043a \u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0440\u0435\u0442\u044c\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f:<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"x_i = A_{ij}\" alt=\"x_i = A_{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2e9\/b40\/773\/2e9b4077369d66b198356d0fb4892db9.svg\">\u2013 \u0441\u043b\u0435\u0432\u0430 i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c, \u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u044b i \u0438 j;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"x_j=A_{ik}u_k\" alt=\"x_j=A_{ik}u_k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2c0\/a9d\/90f\/2c0a9d90fefb859cecb9c3d79f463b4e.svg\">\u2013 \u0441\u043b\u0435\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441 j, \u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441 i. \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"x_i = A_{ik}u_k + c_j\" alt=\"x_i = A_{ik}u_k + c_j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/78d\/dc2\/118\/78ddc21188cc4ca0381e964d2dd922fd.svg\">\u2013 \u0437\u0434\u0435\u0441\u044c \u0441\u043b\u0435\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441 i, \u0430 \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u044b i, j;<\/p>\n<h2>\u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430: \u0442\u0435\u043d\u0437\u043e\u0440\u043d\u044b\u0439 \u043f\u043e\u0435\u0437\u0434<\/h2>\n<p>\u041f\u0443\u0441\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/24b\/b09\/30e\/24bb0930ed08489d53233b1535b9b7de.svg\"> \u2013 \u043f\u044f\u0442\u0438\u043c\u0435\u0440\u043d\u044b\u0439 \u0442\u0435\u043d\u0437\u043e\u0440. \u0422\u043e\u0433\u0434\u0430 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0438\u0434\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"A_{i_1i_2i_3i_4i_5} = \\sum_{j_4=1}^{R_4}\\sum_{j_3=1}^{R_3}\\sum_{j_2=1}^{R_2}\\sum_{j_1=1}^{R_1}G^{(1)}_{i_1j_1}G^{(2)}_{j_1i_2j_2}G^{(3)}_{j_2i_3j_3}G^{(4)}_{j_3i_4j_4}G^{(5)}_{j_4i_5}\" alt=\"A_{i_1i_2i_3i_4i_5} = \\sum_{j_4=1}^{R_4}\\sum_{j_3=1}^{R_3}\\sum_{j_2=1}^{R_2}\\sum_{j_1=1}^{R_1}G^{(1)}_{i_1j_1}G^{(2)}_{j_1i_2j_2}G^{(3)}_{j_2i_3j_3}G^{(4)}_{j_3i_4j_4}G^{(5)}_{j_4i_5}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a1a\/72f\/325\/a1a72f3253166a3d82c74ed4b535f7f4.svg\" width=\"416\" height=\"57\"><\/p>\n<p>\u0422\u0430\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u0430\u044f <img decoding=\"async\" class=\"formula inline\" source=\"G^{(k)}\" alt=\"G^{(k)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/73b\/154\/cfd\/73b154cfd2278119e9437eb066d94e03.svg\">, \u0438 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"R_i\" alt=\"R_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/118\/53e\/28a\/11853e28af2d256d06f21e2f807c1112.svg\">. \u041d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u2013 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u0433\u0440\u0430. \u041d\u0443\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043e\u0441\u043e\u0431\u043e \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e.<br \/>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f <img decoding=\"async\" class=\"formula inline\" source=\"i_1, i_2, i_3, i_4, i_5\" alt=\"i_1, i_2, i_3, i_4, i_5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ce7\/f43\/2d6\/ce7f432d6697cf2e5390a576b40fd458.svg\">, \u0430 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u044b <img decoding=\"async\" class=\"formula inline\" source=\"j_1, j_2, j_3, j_4\" alt=\"j_1, j_2, j_3, j_4\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dd9\/4b6\/e93\/dd94b6e939a6764226998094f6dcac52.svg\">. \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f\u0445 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438\u0434\u0451\u0442 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0441\u0442\u043e\u044f\u043b \u0441\u043d\u0438\u0437\u0443, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u043e\u044f\u043b \u0441\u0432\u0435\u0440\u0445\u0443. \u0422\u0430\u043a \u0436\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0435\u043d\u0437\u043e\u0440\u044b <img decoding=\"async\" class=\"formula inline\" source=\"G^{(k)}\" alt=\"G^{(k)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b88\/467\/57a\/b8846757a162e611b1dd415568365bfa.svg\">, \u0438 \u0443 \u043d\u0438\u0445 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0443\u0436\u0435 \u0441\u0442\u043e\u0438\u0442 <img decoding=\"async\" class=\"formula inline\" source=\"(k)\" alt=\"(k)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a64\/339\/c91\/a64339c91ab0b33fc9a7d32b635ff4af.svg\">. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c, \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0438 \u0432 \u0441\u043a\u043e\u0431\u043a\u0438, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u044b. \u0421\u0430\u043c\u043e \u0436\u0435 \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0447\u0442\u0438 \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"A_{i_1i_2i_3i_4i_5}=\\left(G^{(1)}\\right)_{i_1j_1}\\left(G^{(2)}\\right)_{i_2j_2}^{j_1}\\left(G^{(3)}\\right)_{i_3j_3}^{j_2}\\left(G^{(4)}\\right)_{i_4j_4}^{j_3}\\left(G^{(5)}\\right)_{i_5}^{j_4}\" alt=\"A_{i_1i_2i_3i_4i_5}=\\left(G^{(1)}\\right)_{i_1j_1}\\left(G^{(2)}\\right)_{i_2j_2}^{j_1}\\left(G^{(3)}\\right)_{i_3j_3}^{j_2}\\left(G^{(4)}\\right)_{i_4j_4}^{j_3}\\left(G^{(5)}\\right)_{i_5}^{j_4}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e42\/403\/c66\/e42403c664cabeb679bd59089dee725e.svg\" width=\"449\" height=\"42\"><\/p>\n<p>\u0423\u0440\u0430, \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0443\u043f\u0440\u043e\u0449\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430!<\/p>\n<h2>\u041e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c einsum<\/h2>\n<p>einsum \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0434\u043b\u044f Python (NumPy, TensorFlow, PyTorch). \u0412\u043e \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430, \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e (\u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e einsum \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435. \u0414\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c NumPy. einsum \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043a \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u043e \u043d\u0438\u0445 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043c\u044b \u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0440\u0430\u0437\u0443 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u043f\u0443\u0441\u0442\u044c <img decoding=\"async\" class=\"formula inline\" source=\"A \\in \\mathbb{R}^{3\\times5}\" alt=\"A \\in \\mathbb{R}^{3\\times5}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b0a\/2bc\/5ab\/b0a2bc5abc4823902e247902ad223987.svg\">, <img decoding=\"async\" class=\"formula inline\" source=\"B \\in \\mathbb{R}^{5\\times2}\" alt=\"B \\in \\mathbb{R}^{5\\times2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6d7\/02d\/3a6\/6d702d3a6896bb86ed24fe4ae4a7c3e1.svg\"> \u2013 \u0434\u0432\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u0442\u044c. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"M \\in \\mathbb{R}^{3\\times2}\" alt=\"M \\in \\mathbb{R}^{3\\times2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1cb\/afa\/42b\/1cbafa42b36645b3c9bd78cc5ac655d1.svg\">, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"M_{ij}=\\sum_{k=1}^{5}A_{ik}B_{kj} = A_{ik}B_{kj}\" alt=\"M_{ij}=\\sum_{k=1}^{5}A_{ik}B_{kj} = A_{ik}B_{kj}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/682\/98c\/14b\/68298c14b826015117374444d8ae9c6d.svg\" width=\"206\" height=\"55\"><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0443\u0441\u0442\u044c \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e. \u041d\u0443, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0451\u0445 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432:<\/p>\n<pre><code class=\"python\">M = np.zeros((3, 2)) for i in range(3):     for j in range(2):         for k in range(5):             M[i, j] = A[i, k] * B[k, j]<\/code><\/pre>\n<p>\u041b\u0438\u0431\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e einsum \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443:<\/p>\n<pre><code class=\"python\">M = np.einsum(\"ik,kj-&gt;ij\", A, B)<\/code><\/pre>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u0447\u0442\u043e \u0437\u0430 \u043c\u0430\u0433\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435. einsum \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442: \u0448\u0430\u0431\u043b\u043e\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430. \u0428\u0430\u0431\u043b\u043e\u043d \u044d\u0442\u043e\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p>&#171;{\u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430},{\u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430}-&gt;{\u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430}&#187;<\/p>\n<p>\u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 einsum \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0432\u0430 \u0438 \u0441\u043f\u0440\u0430\u0432\u0430 \u043e\u0442 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 (\u0434\u043e \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0438), \u0442\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438\u0441\u044c \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0443;<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0442\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u043f\u043e \u0432\u0441\u0435\u043c \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0441\u044f\u043c;<\/p>\n<\/li>\n<li>\n<p>\u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f 3 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0437;<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e einsum \u043e\u0447\u0435\u043d\u044c \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0438 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0432\u0432\u043e\u0434\u0438\u043b\u0438, \u043f\u043e\u043a\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u043a\u043e\u0432 \u0441\u0443\u043c\u043c\u044b, \u0442\u0430\u043a \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f einsum \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u043e\u0440\u0430\u0445, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 einsum. <\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0440\u0430\u0437\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 einsum:<\/p>\n<h2>\u041e\u0434\u043d\u0430 einsum, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435\u043c\u0438<\/h2>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 1.<\/strong> \u0421\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u0430:<\/p>\n<pre><code class=\"python\">vector = np.array([1, 2, 3, 4, 5]) result = np.einsum(\"i-&gt;\", vector) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>15<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 2.<\/strong> \u0421\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b:<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) result = np.einsum(\"ij-&gt;\", matrix) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>21<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 3.<\/strong> \u0421\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c:<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) result = np.einsum(\"ij-&gt;j\", matrix) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[9, 12]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 4.<\/strong> \u0421\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c:<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) result = np.einsum(\"ij-&gt;i\", matrix) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[3, 7, 11]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 5.<\/strong> \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (\u044f \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b, \u043d\u043e \u043e\u0441\u0438, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435):<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) result = np.einsum(\"ij-&gt;ji\", matrix) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[[1, 3, 5], [2, 4, 6]]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 6.<\/strong> \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440:<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) vector = np.array([[1, 2]]) result = np.einsum(\"ij,kj-&gt;ik\", matrix, vector) print(result)<\/code><\/pre>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0438\u043c\u0435\u0435\u0442 \u0444\u043e\u0440\u043c\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"1 \\times 2\" alt=\"1 \\times 2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9b7\/998\/025\/9b799802541e6600b6ded9902061fe73.svg\">, \u0438 \u0447\u0442\u043e\u0431\u044b \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c  \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430 \u043d\u0435\u0433\u043e \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c, \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e einsum \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0434\u0430\u0442\u044c \u043e\u0441\u044c, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438\u0441\u044c \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0438\u0433\u0440\u0430\u0442\u044c \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043a\u043e\u043f\u0438\u044e \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430.<\/p>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[[5], [11], [17]]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 7.<\/strong> \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443:<\/p>\n<pre><code class=\"python\">matrix1 = np.array([[1, 2], [3, 4], [5, 6]]) matrix2 = np.array([[1, 0], [0, 1]]) result = np.einsum(\"ik,kj-&gt;ij\", matrix1, matrix2) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[[1, 2], [3, 4], [5, 6]]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 8.<\/strong> \u0421\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432:<\/p>\n<pre><code class=\"python\">vector1 = np.array([[1, 2, 3]]) vector2 = np.array([[1, 1, 1]]) result = np.einsum(\"ik,jk-&gt;\", vector1, vector2) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>6<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 9.<\/strong>  \u0421\u043b\u0435\u0434 \u043c\u0430\u0442\u0440\u0438\u0446\u044b:<\/p>\n<pre><code class=\"python\">matrix1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) result = np.einsum(\"ii-&gt;\", matrix1) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>15<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 10.<\/strong> \u0410\u0434\u0430\u043c\u0430\u0440\u043e\u0432\u043e (\u043f\u043e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u043e\u0435) \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"python\">matrix1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) matrix2 = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) result = np.einsum(\"ij,ij-&gt;ij\", matrix1, matrix2) print(result)<\/code><\/pre>\n<p>\u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u0438\u043d\u0442\u0443\u0442\u0438\u0432\u043d\u043e, \u043d\u043e, \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u044b\u0448\u0435: \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 einsum \u2013 \u0437\u0430\u043f\u0438\u0448\u0438 \u0447\u0435\u0440\u0435\u0437 \u0446\u0438\u043a\u043b\u044b:<\/p>\n<pre><code class=\"python\">result = np.zeros(matrix1.shape, dtype=\"int32\") for i in range(result.shape[0]):     for j in range(result.shape[1]):         result[i, j] += matrix1[i, j] * matrix2[i, j] print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[[1, 0, 0], [0, 5, 0], [0, 0, 9]]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 11.<\/strong> \u041a\u0440\u043e\u043d\u0435\u043a\u0435\u0440\u043e\u0432\u043e (\u0432\u043d\u0435\u0448\u043d\u0435\u0435) \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432:<\/p>\n<pre><code class=\"python\">vector1 = np.array([1, 2, 3]) vector2 = np.array([1, 0, 0]) result = np.einsum(\"i,j-&gt;ij\", vector1, vector2) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[[1, 0, 0], [2, 0, 0], [3, 0, 0]]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 12.<\/strong> \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043d\u0437\u043e\u0440\u0430:<\/p>\n<pre><code class=\"python\">A = np.array([[[0, 1], [1, 2], [2, 3]], [[1, 2], [2, 3], [3, 4]], [[2, 3], [3, 4], [4, 5]]]) result = np.einsum(\"ijk-&gt;jki\", A) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[[[0, 1, 2], [1, 2, 3]], [[1, 2, 3], [2, 3, 4]], [[2, 3, 4], [3, 4, 5]]]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 13.<\/strong> \u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0435\u043d\u0437\u043e\u0440\u0430 \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043c\u043e\u0434\u0435:<\/p>\n<pre><code class=\"python\">A = np.array([[[0, 1], [1, 2], [2, 3]], [[1, 2], [2, 3], [3, 4]], [[2, 3], [3, 4], [4, 5]]]) U = np.array([[1, 2], [2, 3]]) result = np.einsum(\"ijk,nk-&gt;ijn\", A, U) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[[[2, 3], [5, 8], [8, 13]], [[5, 8], [8, 13], [11. 18]], [[8, 13], [11, 18], [14, 23]]]<\/p>\n<\/div>\n<\/details>\n<h2>\u0418\u0442\u043e\u0433\u0438<\/h2>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, einsum \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0430\u0445\u0430\u0440. \u0412\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432, \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 (np.dot, np.outer, np.tensordot, np.transpose, np.cumsum \u0438 \u0442.\u0434.), \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c einsum. \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u0436\u0430\u0442\u044b\u0439, \u0438, \u043d\u0435 \u043f\u043e\u0431\u043e\u044e\u0441\u044c \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430, <a href=\"https:\/\/stackoverflow.com\/questions\/18365073\/why-is-numpys-einsum-faster-than-numpys-built-in-functions\" rel=\"noopener noreferrer nofollow\">\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439<\/a> \u043a\u043e\u0434.<\/p>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=pkVwUVEHmfI\" rel=\"noopener noreferrer nofollow\">\u0420\u043e\u043b\u0438\u043a<\/a> \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 einsum (\u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432).<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=CLrTj7D2fLM\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430<\/a> (\u0431\u0430\u0437\u0430)<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=-hOhhRe2gSA\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430<\/a> (\u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0430\u044f \u0447\u0430\u0441\u0442\u044c)<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/544498\/\"> https:\/\/habr.com\/ru\/post\/544498\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0423\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u043b\u043e, \u043d\u043e \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0442 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c <strong>\u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. <\/strong>\u041d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 einsum \u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0435\u0449\u0451 \u043c\u0435\u043d\u044c\u0448\u0435. \u041d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c <a href=\"https:\/\/stackoverflow.com\/questions\/26089893\/understanding-numpys-einsum\" rel=\"noopener noreferrer nofollow\">\u0435\u0441\u0442\u044c<\/a> \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 einsum \u043d\u0430 stack overflow, \u0430 \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441\u0430\u0439\u0442\u043e\u0432, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u0440\u0438\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u044d\u0442\u043e\u0433\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430. \u0425\u043e\u0447\u0443 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0438 \u0432\u0441\u0435\u0445, \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u044e \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e!<\/p>\n<hr>\n<h2>\u041e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430<\/h2>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043d\u0437\u043e\u0440\u043d\u043e\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0438 \u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043e\u0432 \u043a \u0442\u0435\u043d\u0437\u043e\u0440\u0430\u043c.<br \/>\u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043d\u0437\u043e\u0440\u0430\u043c\u0438, \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0441\u043c\u0443\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u0440\u043e\u043c\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0438 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0437\u0430 \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c. \u041f\u0440\u0438\u043c\u0435\u0440:<br \/>&#171;\u0430 \u0441 \u0432\u0435\u0440\u0445\u043d\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i&#187; \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043a\u0430\u043a , \u0430 &#171;a \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0435 \u0441 \u0432\u0435\u0440\u0445\u043d\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c i&#187; \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f . \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e-\u043d\u0430\u0447\u0430\u043b\u0443 \u044d\u0442\u043e \u0432\u0432\u043e\u0434\u0438\u0442 \u0432 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0438 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u043c, \u043d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u044b\u043a\u043d\u0443\u0442\u044c. <\/p>\n<p><strong>\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435: <\/strong>\u0434\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432\u0438\u0434\u0430 \u0438\u043b\u0438 \u044f \u0431\u0443\u0434\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c <em>\u0442\u0435\u0440\u043c\u0430\u043c\u0438<\/em>.<\/p>\n<h2>\u041e \u0447\u0451\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430?<\/h2>\n<p>\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0437\u043d\u0430\u043a\u043e\u0432 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u0415\u0441\u0442\u044c \u0442\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u043e \u0438\u043b\u0438 \u0438\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430.<\/p>\n<p><strong>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u2116 1: <\/strong>\u0421\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b \u0432 \u043e\u0434\u043d\u043e\u043c \u0442\u0435\u0440\u043c\u0435.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440: \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430:<\/p>\n<p>\u0421 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u044d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u0437\u043d\u0430\u043a\u0430 \u0441\u0443\u043c\u043c\u044b, \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0438\u0448\u0435\u043c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0435\u0440\u043c. \u041e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0440\u043c\u0435 \u0438\u043d\u0434\u0435\u043a\u0441 i \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441 \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u043e\u043c \u043c\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 i, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435, \u043f\u043e \u0432\u0441\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0438\u043d\u0434\u0435\u043a\u0441. <\/p>\n<p><a class=\"anchor\" name=\"matrix-vector-multiplication\" id=\"matrix-vector-multiplication\"><\/a><\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440: \u043f\u0443\u0441\u0442\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443  \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440 . \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u0435\u043a\u0442\u043e\u0440 . \u041f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e:<\/p>\n<p>\u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0437\u043d\u0430\u043a\u0430 \u0441\u0443\u043c\u043c\u044b:<\/p>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0432 \u0442\u0435\u0440\u043c \u0438\u043d\u0434\u0435\u043a\u0441 i \u0432\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u0438\u043d\u0434\u0435\u043a\u0441 j \u0432\u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 j. <\/p>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 1.<\/strong> \u0418\u043d\u0434\u0435\u043a\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0442\u0435\u0440\u043c \u0434\u0432\u0430\u0436\u0434\u044b, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <em>\u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c.<\/em><\/p>\n<p><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 2.<\/strong> <em>\u0421\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c<\/em> \u043d\u0430\u0437\u043e\u0432\u0451\u043c \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432 \u0442\u0435\u0440\u043c\u0435, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438.<\/p>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u0451\u043d \u043b\u044e\u0431\u044b\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e <\/p>\n<ol>\n<li>\n<p>\u041d\u043e\u0432\u044b\u0439 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0442\u0435\u0440\u043c\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041d\u043e\u0432\u044b\u0439 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e \u0436\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u0438 \u0441\u0442\u0430\u0440\u044b\u0439 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441.<\/p>\n<\/li>\n<\/ol>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0449\u0435, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python:<\/p>\n<pre><code class=\"python\">for i in range(M):     for j in range(N):         b[i, j] = A[i, j] * v[j]<\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435, <a href=\"#matrix-vector-multiplication\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u0442<\/a> \u043f\u0440\u0438\u043c\u0435\u0440. \u0417\u0434\u0435\u0441\u044c \u0438\u043d\u0434\u0435\u043a\u0441 j \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c, \u0430 \u0438\u043d\u0434\u0435\u043a\u0441 i \u2013 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c. \u0421\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0438 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u043e \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c. \u0418\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 j \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435.<\/p>\n<p><strong>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u2116 2.<\/strong> \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0435\u0440\u043c\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0432\u0443\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c , \u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c  \u0438\u043b\u0438 , \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0442\u0430\u043a\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0441\u0451 \u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u0441\u043c\u044b\u0441\u043b.<br \/>\u0411\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432:<\/p>\n<p>\u2013 \u0437\u0434\u0435\u0441\u044c i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c, \u0442.\u043a. \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0434\u0432\u0430\u0436\u0434\u044b;<\/p>\n<p>\u2013 \u0437\u0434\u0435\u0441\u044c i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c, \u0430 j \u2013 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c;<\/p>\n<p>\u2013 \u0437\u0434\u0435\u0441\u044c \u0438 i, \u0438 j \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438;<\/p>\n<p>\u2013 \u0437\u0434\u0435\u0441\u044c \u0438 i, \u0438 j \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438;<\/p>\n<p>\u2013 \u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443 (\u0438\u043d\u0434\u0435\u043a\u0441 i \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0442\u0435\u0440\u043c \u0442\u0440\u0438\u0436\u0434\u044b);<\/p>\n<p>\u0418\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u044b\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432 \u0442\u0435\u0440\u043c, \u043c\u044b \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u0440\u0445\u043d\u0438\u043c\u0438 \u0438 \u043d\u0438\u0436\u043d\u0438\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438, \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0445 \u0432\u043c\u0435\u0441\u0442\u0435. \u0415\u0449\u0451 \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430<\/p>\n<p>\u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u0435\u0440\u043d\u043e, \u0438 \u043d\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0442 \u0432\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441 i \u0432\u0445\u043e\u0434\u0438\u0442 3 \u0440\u0430\u0437\u0430, \u043a\u0430\u043a \u0438 \u0438\u043d\u0434\u0435\u043a\u0441 j, \u043d\u043e \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0434\u0432\u0430 \u0442\u0435\u0440\u043c\u0430, \u0430 \u043d\u0435 \u043e\u0434\u0438\u043d, \u0438 \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0435\u0440\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e (\u043a\u0430\u043a \u0442\u043e\u0433\u043e \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e), \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p><strong>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u2116 3.<\/strong> \u0412 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u0445, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0441\u043b\u0435\u0432\u0430 \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0441\u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430:<\/p>\n<p>\u2013 \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0432\u044b\u0448\u0435, \u0437\u0434\u0435\u0441\u044c i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f;<\/p>\n<p>\u2013 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0430: \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u0440\u043c \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 k \u0438 j \u0432\u0445\u043e\u0434\u044f\u0442 \u0434\u0432\u0430\u0436\u0434\u044b, \u0437\u043d\u0430\u0447\u0438\u0442, \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438, i \u0432\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0437\u043d\u0430\u0447\u0438\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c. \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0442\u0435\u0440\u043c \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 k \u0432\u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430, i \u2013 \u043e\u0434\u0438\u043d, \u0437\u043d\u0430\u0447\u0438\u0442, k \u2013 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439, i \u2013 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439. \u0412 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438\u043d\u0434\u0435\u043a\u0441 i \u0432\u0445\u043e\u0434\u0438\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c. \u0418\u0442\u043e\u0433: \u0438\u043d\u0434\u0435\u043a\u0441 i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0434\u043b\u044f \u043e\u0431\u0435\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u043f\u0440\u0430\u0432\u0438\u043b\u043e 3 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u043a \u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0440\u0435\u0442\u044c\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f:<\/p>\n<p>\u2013 \u0441\u043b\u0435\u0432\u0430 i \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c, \u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u044b i \u0438 j;<\/p>\n<p>\u2013 \u0441\u043b\u0435\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441 j, \u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441 i. \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442;<\/p>\n<p>\u2013 \u0437\u0434\u0435\u0441\u044c \u0441\u043b\u0435\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441 i, \u0430 \u0441\u043f\u0440\u0430\u0432\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u044b i, j;<\/p>\n<h2>\u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430: \u0442\u0435\u043d\u0437\u043e\u0440\u043d\u044b\u0439 \u043f\u043e\u0435\u0437\u0434<\/h2>\n<p>\u041f\u0443\u0441\u0442\u044c  \u2013 \u043f\u044f\u0442\u0438\u043c\u0435\u0440\u043d\u044b\u0439 \u0442\u0435\u043d\u0437\u043e\u0440. \u0422\u043e\u0433\u0434\u0430 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0438\u0434\u0435:<\/p>\n<p>\u0422\u0430\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u0430\u044f , \u0438 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 . \u041d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u2013 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u0433\u0440\u0430. \u041d\u0443\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043e\u0441\u043e\u0431\u043e \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e.<br \/>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f , \u0430 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u044b . \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f\u0445 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438\u0434\u0451\u0442 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0441\u0442\u043e\u044f\u043b \u0441\u043d\u0438\u0437\u0443, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u043e\u044f\u043b \u0441\u0432\u0435\u0440\u0445\u0443. \u0422\u0430\u043a \u0436\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0435\u043d\u0437\u043e\u0440\u044b , \u0438 \u0443 \u043d\u0438\u0445 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0443\u0436\u0435 \u0441\u0442\u043e\u0438\u0442 . \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c, \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0438 \u0432 \u0441\u043a\u043e\u0431\u043a\u0438, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u044b. \u0421\u0430\u043c\u043e \u0436\u0435 \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0447\u0442\u0438 \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e:<\/p>\n<p>\u0423\u0440\u0430, \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0443\u043f\u0440\u043e\u0449\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430!<\/p>\n<h2>\u041e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c einsum<\/h2>\n<p>einsum \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0434\u043b\u044f Python (NumPy, TensorFlow, PyTorch). \u0412\u043e \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430, \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e (\u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e einsum \u0432 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435. \u0414\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c NumPy. einsum \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430 \u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043a \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u043e \u043d\u0438\u0445 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043c\u044b \u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0440\u0430\u0437\u0443 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u043f\u0443\u0441\u0442\u044c ,  \u2013 \u0434\u0432\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u0442\u044c. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 , \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0433\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430:<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0443\u0441\u0442\u044c \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e. \u041d\u0443, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0451\u0445 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432:<\/p>\n<pre><code class=\"python\">M = np.zeros((3, 2)) for i in range(3):     for j in range(2):         for k in range(5):             M[i, j] = A[i, k] * B[k, j]<\/code><\/pre>\n<p>\u041b\u0438\u0431\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e einsum \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443:<\/p>\n<pre><code class=\"python\">M = np.einsum(\"ik,kj-&gt;ij\", A, B)<\/code><\/pre>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u0447\u0442\u043e \u0437\u0430 \u043c\u0430\u0433\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435. einsum \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442: \u0448\u0430\u0431\u043b\u043e\u043d, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430. \u0428\u0430\u0431\u043b\u043e\u043d \u044d\u0442\u043e\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p>&#171;{\u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430},{\u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430}-&gt;{\u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430}&#187;<\/p>\n<p>\u041f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 einsum \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0432\u0430 \u0438 \u0441\u043f\u0440\u0430\u0432\u0430 \u043e\u0442 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 (\u0434\u043e \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0438), \u0442\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438\u0441\u044c \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0443;<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0442\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u043f\u043e \u0432\u0441\u0435\u043c \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0441\u044f\u043c;<\/p>\n<\/li>\n<li>\n<p>\u041d\u0438\u043a\u0430\u043a\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f 3 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0437;<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e einsum \u043e\u0447\u0435\u043d\u044c \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0438 \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0432\u0432\u043e\u0434\u0438\u043b\u0438, \u043f\u043e\u043a\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u042d\u0439\u043d\u0448\u0442\u0435\u0439\u043d\u0430, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u043a\u043e\u0432 \u0441\u0443\u043c\u043c\u044b, \u0442\u0430\u043a \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f einsum \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0445 \u043f\u043e\u0440\u0430\u0445, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 einsum. <\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0440\u0430\u0437\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 einsum:<\/p>\n<h2>\u041e\u0434\u043d\u0430 einsum, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435\u043c\u0438<\/h2>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 1.<\/strong> \u0421\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u0430:<\/p>\n<pre><code class=\"python\">vector = np.array([1, 2, 3, 4, 5]) result = np.einsum(\"i-&gt;\", vector) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>15<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 2.<\/strong> \u0421\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b:<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) result = np.einsum(\"ij-&gt;\", matrix) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>21<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 3.<\/strong> \u0421\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c:<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) result = np.einsum(\"ij-&gt;j\", matrix) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[9, 12]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 4.<\/strong> \u0421\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c:<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) result = np.einsum(\"ij-&gt;i\", matrix) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[3, 7, 11]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 5.<\/strong> \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (\u044f \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b, \u043d\u043e \u043e\u0441\u0438, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435):<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) result = np.einsum(\"ij-&gt;ji\", matrix) print(result)<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>Output<\/summary>\n<div class=\"spoiler__content\">\n<p>[[1, 3, 5], [2, 4, 6]]<\/p>\n<\/div>\n<\/details>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 6.<\/strong> \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440:<\/p>\n<pre><code class=\"python\">matrix = np.array([[1, 2], [3, 4], [5, 6]]) vector = np.array([[1, 2]]) result = np.einsum(\"ij,kj-&gt;ik\", matrix, vector) print(result)<\/code><\/pre>\n<p>\u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0438\u043c\u0435\u0435\u0442 <\/p>\n<\/p>\n<\/p>\n<p><\/br><\/p>\n<p><\/br><\/p>\n<\/hr>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-318726","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/318726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=318726"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/318726\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=318726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=318726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=318726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}