{"id":13044,"date":"2024-01-18T21:08:21","date_gmt":"2024-01-18T13:08:21","guid":{"rendered":"https:\/\/blog.iyatt.com\/?p=13044"},"modified":"2025-10-01T20:11:35","modified_gmt":"2025-10-01T12:11:35","slug":"%e6%95%b0%e5%ad%a6%e4%b8%8e%e8%ae%a1%e7%ae%97%e6%9c%ba%ef%bc%882%ef%bc%89-%e7%ba%bf%e6%80%a7%e4%bb%a3%e6%95%b0%ef%bc%88%e7%bc%96%e8%be%91%e4%b8%ad%ef%bc%89","status":"publish","type":"post","link":"https:\/\/blog.iyatt.com\/?p=13044","title":{"rendered":"\u6570\u5b66\u4e0e\u8ba1\u7b97\u673a\u3010\u7ebf\u6027\u4ee3\u6570\u3011"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1_%E7%9F%A9%E9%98%B5\" >1 \u77e9\u9635<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#11_%E5%88%9B%E5%BB%BA%E7%9F%A9%E9%98%B5\" >1.1 \u521b\u5efa\u77e9\u9635<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#111_%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9F%A9%E9%98%B5\" >1.1.1 \u81ea\u5b9a\u4e49\u77e9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#112_%E9%9A%8F%E6%9C%BA%E5%85%83%E7%B4%A0%E7%9F%A9%E9%98%B5\" >1.1.2 \u968f\u673a\u5143\u7d20\u77e9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#113_%E7%89%B9%E6%AE%8A%E7%9F%A9%E9%98%B5\" >1.1.3 \u7279\u6b8a\u77e9\u9635<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1131_%E9%9B%B6%E7%9F%A9%E9%98%B5\" >1.1.3.1 \u96f6\u77e9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1132_%E6%96%B9%E9%98%B5\" >1.1.3.2 \u65b9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1133_%E5%8D%95%E4%BD%8D%E7%9F%A9%E9%98%B5\" >1.1.3.3 \u5355\u4f4d\u77e9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1134_%E5%AF%B9%E8%A7%92%E7%9F%A9%E9%98%B5\" >1.1.3.4 \u5bf9\u89d2\u77e9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1135_%E4%B8%8A%E4%B8%89%E8%A7%92%E7%9F%A9%E9%98%B5%E5%92%8C%E4%B8%8B%E4%B8%89%E8%A7%92%E7%9F%A9%E9%98%B5\" >1.1.3.5 \u4e0a\u4e09\u89d2\u77e9\u9635\u548c\u4e0b\u4e09\u89d2\u77e9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1136_%E5%AF%B9%E7%A7%B0%E7%9F%A9%E9%98%B5\" >1.1.3.6 \u5bf9\u79f0\u77e9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1137_%E5%90%8C%E5%9E%8B%E7%9F%A9%E9%98%B5\" >1.1.3.7 \u540c\u578b\u77e9\u9635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#1138_%E7%9F%A9%E9%98%B5%E7%9B%B8%E7%AD%89\" >1.1.3.8 \u77e9\u9635\u76f8\u7b49<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#12_%E7%9F%A9%E9%98%B5%E8%BF%90%E7%AE%97\" >1.2 \u77e9\u9635\u8fd0\u7b97<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#121_%E7%9F%A9%E9%98%B5%E5%8A%A0%E5%87%8F%E6%B3%95\" >1.2.1 \u77e9\u9635\u52a0\u51cf\u6cd5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#122_%E7%9F%A9%E9%98%B5%E6%95%B0%E4%B9%98\" >1.2.2 \u77e9\u9635\u6570\u4e58<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#123_%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95\" >1.2.3 \u77e9\u9635\u4e58\u6cd5<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#%E4%BE%8B_1\" >\u4f8b 1<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#124_%E7%9F%A9%E9%98%B5%E7%9A%84%E4%B9%98%E6%96%B9\" >1.2.4 \u77e9\u9635\u7684\u4e58\u65b9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#125_%E8%BD%AC%E7%BD%AE\" >1.2.5 \u8f6c\u7f6e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#126_%E9%80%86%E7%9F%A9%E9%98%B5\" >1.2.6 \u9006\u77e9\u9635<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#13_%E8%A1%8C%E5%88%97%E5%BC%8F\" >1.3 \u884c\u5217\u5f0f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#131_%E8%A1%8C%E5%88%97%E5%BC%8F%E5%80%BC%E8%AE%A1%E7%AE%97\" >1.3.1 \u884c\u5217\u5f0f\u503c\u8ba1\u7b97<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#132_%E7%BA%BF%E6%80%A7%E6%96%B9%E7%A8%8B%E7%BB%84%E6%B1%82%E8%A7%A3\" >1.3.2 \u7ebf\u6027\u65b9\u7a0b\u7ec4\u6c42\u89e3<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#14_%E7%9F%A9%E9%98%B5%E7%9A%84%E7%A7%A9\" >1.4 \u77e9\u9635\u7684\u79e9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#15_%E5%90%91%E9%87%8F\" >1.5 \u5411\u91cf<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#151_%E5%88%9B%E5%BB%BA%E5%90%91%E9%87%8F\" >1.5.1 \u521b\u5efa\u5411\u91cf<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#152_%E5%86%85%E7%A7%AF\" >1.5.2 \u5185\u79ef<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#153_%E9%95%BF%E5%BA%A6\" >1.5.3 \u957f\u5ea6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#154_%E5%A4%B9%E8%A7%92\" >1.5.4 \u5939\u89d2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#155_%E6%AD%A3%E4%BA%A4\" >1.5.5 \u6b63\u4ea4<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#16_NumPy_%E6%95%B0%E7%BB%84\" >1.6 NumPy \u6570\u7ec4<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#161_%E7%AD%89%E5%B7%AE_1\" >1.6.1 \u7b49\u5dee 1<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#162_%E7%AD%89%E5%B7%AE_2\" >1.6.2 \u7b49\u5dee 2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#163_%E7%AD%89%E6%AF%94\" >1.6.3 \u7b49\u6bd4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#164_%E7%BB%9F%E8%AE%A1\" >1.6.4 \u7edf\u8ba1<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#2_%E7%89%B9%E5%BE%81%E5%80%BC%E4%B8%8E%E7%9F%A9%E9%98%B5%E5%88%86%E8%A7%A3\" >2 \u7279\u5f81\u503c\u4e0e\u77e9\u9635\u5206\u89e3<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#21_%E7%89%B9%E5%BE%81%E5%80%BC%E4%B8%8E%E7%89%B9%E5%BE%81%E5%90%91%E9%87%8F\" >2.1 \u7279\u5f81\u503c\u4e0e\u7279\u5f81\u5411\u91cf<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#%E4%BE%8B_1-2\" >\u4f8b 1<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#22_%E7%89%B9%E5%BE%81%E5%80%BC%E6%80%A7%E8%B4%A8\" >2.2 \u7279\u5f81\u503c\u6027\u8d28<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#23_%E7%89%B9%E5%BE%81%E7%A9%BA%E9%97%B4\" >2.3 \u7279\u5f81\u7a7a\u95f4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#24_%E7%89%B9%E5%BE%81%E5%80%BC%E5%88%86%E8%A7%A3\" >2.4 \u7279\u5f81\u503c\u5206\u89e3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#25_%E5%A5%87%E5%BC%82%E5%80%BC%E5%88%86%E8%A7%A3%EF%BC%88SVD%EF%BC%89\" >2.5 \u5947\u5f02\u503c\u5206\u89e3\uff08SVD\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#251_SVD_%E7%9F%A9%E9%98%B5%E8%BF%91%E4%BC%BC\" >2.5.1 SVD \u77e9\u9635\u8fd1\u4f3c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/blog.iyatt.com\/?p=13044\/#252_%E4%BE%8B_1_%E4%BD%BF%E7%94%A8_SVD_%E5%8E%8B%E7%BC%A9%E5%9B%BE%E5%83%8F\" >2.5.2 \u4f8b 1 \u4f7f\u7528 SVD \u538b\u7f29\u56fe\u50cf<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"1_%E7%9F%A9%E9%98%B5\"><\/span>1 \u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>NumPy \u4e2d array \u548c matrix \u90fd\u53ef\u4ee5\u7528\u4e8e\u50a8\u5b58\u77e9\u9635\uff0c\u540e\u8005\u662f\u524d\u8005\u7684\u5b50\u7c7b\uff0carray \u53ef\u4ee5\u8868\u793a\u4efb\u610f\u7ef4\u5ea6\uff0cmatrix \u53ea\u80fd\u662f\u4e8c\u7ef4\uff0c\u76f8\u5f53\u4e8e\u77e9\u9635\u4e13\u7528\uff0c\u5728\u4e00\u4e9b\u77e9\u9635\u7684\u8fd0\u7b97\u64cd\u4f5c\u4e0a\u8f83\u4e3a\u76f4\u89c2\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"11_%E5%88%9B%E5%BB%BA%E7%9F%A9%E9%98%B5\"><\/span>1.1 \u521b\u5efa\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"111_%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9F%A9%E9%98%B5\"><\/span>1.1.1 \u81ea\u5b9a\u4e49\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\n# \u901a\u8fc7\u5217\u8868\u521b\u5efa\nA = [\n    [1, 2, 3, 4],\n    [5, 6, 7, 8],\n    [9, 10, 11, 12]\n]\narray1 = np.array(A)\ndisplay(array1) # \u67e5\u770b\u77e9\u9635\ndisplay(type(A)) # \u67e5\u770b\u5217\u8868\u7c7b\u578b\ndisplay(type(array1)) # \u67e5\u770b\u77e9\u9635\u7c7b\u578b\n\n# \u901a\u8fc7\u5143\u7ec4\u521b\u5efa\nB = (\n    (1, 2, 3, 4),\n    (5, 6, 7, 8),\n    (9, 10, 11, 12)\n)\narray2 = np.array(B)\ndisplay(array2) # \u67e5\u770b\u77e9\u9635\ndisplay(type(B)) # \u67e5\u770b\u5143\u7ec4\u7c7b\u578b\ndisplay(type(array2)) # \u67e5\u770b\u77e9\u9635\u7c7b\u578b<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705564576861.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 205px; --smush-placeholder-aspect-ratio: 205\/177;\" \/><\/p>\n<p>\u901a\u8fc7\u5143\u7ec4\u8d27\u5217\u8868\u521b\u5efa\u7684\u77e9\u9635\u7c7b\u578b\u90fd\u76f8\u540c<\/p>\n<h3><span class=\"ez-toc-section\" id=\"112_%E9%9A%8F%E6%9C%BA%E5%85%83%E7%B4%A0%E7%9F%A9%E9%98%B5\"><\/span>1.1.2 \u968f\u673a\u5143\u7d20\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"language-py\">import numpy as np\n\narray1 = np.random.random((2, 3)) # 2 \u884c 3 \u5217\uff0c\u5143\u7d20\u8303\u56f4\u5728 0~1 de \u77e9\u9635\ndisplay(array1)\n\narray2 = np.random.randint(1, 100, size=(3, 4)) # 3 \u884c 4 \u5217\uff0c\u5143\u7d20\u8303\u56f4\u5728 [1,100) \u7684\u77e9\u9635\ndisplay(array2)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705564622376.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 347px; --smush-placeholder-aspect-ratio: 347\/89;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"113_%E7%89%B9%E6%AE%8A%E7%9F%A9%E9%98%B5\"><\/span>1.1.3 \u7279\u6b8a\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"1131_%E9%9B%B6%E7%9F%A9%E9%98%B5\"><\/span>1.1.3.1 \u96f6\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u5143\u7d20\u5168\u4e3a 0 \u7684\u77e9\u9635\uff0c\u8bb0\u4f5c<code class=\"katex-inline\">\\mathbf O<\/code><\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\na1 = np.zeros(10) # 10 \u4e2a\u5143\u7d20\u7684\u96f6\u6570\u7ec4\nprint(a1.shape)\n\na2 = np.zeros((3, 4)) # 3 \u884c 4 \u5217\u7684\u96f6\u77e9\u9635\nprint(a2)\n\na3 = np.array([np.zeros(5)]) # \u96f6\u5411\u91cf\uff08\u884c\u5411\u91cf\uff09\nprint(a3)\nprint(a3.shape) # \u67e5\u770b\u77e9\u9635\u5f62\u72b6\na4 = a3.reshape(5, 1) # \u4fee\u6539\u77e9\u9635\u5f62\u72b6\uff0c\u6539\u4e3a\u5217\u5411\u91cf\nprint(a4)\nprint(a4.shape)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705565652330.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 161px; --smush-placeholder-aspect-ratio: 161\/208;\" \/><\/p>\n<h4><span class=\"ez-toc-section\" id=\"1132_%E6%96%B9%E9%98%B5\"><\/span>1.1.3.2 \u65b9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u884c\u5217\u6570\u76f8\u7b49\u90fd\u4e3a n \u7684\u77e9\u9635\u79f0\u4e3a n \u9636\u65b9\u9635\uff0c\u8bb0\u4f5c<code class=\"katex-inline\">\\mathbf{A_n}<\/code><\/p>\n<h4><span class=\"ez-toc-section\" id=\"1133_%E5%8D%95%E4%BD%8D%E7%9F%A9%E9%98%B5\"><\/span>1.1.3.3 \u5355\u4f4d\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u4e3b\u5bf9\u89d2\u7ebf\u4e0a\u5143\u7d20\u5168\u4e3a 1\uff0c\u5176\u5b83\u4f4d\u7f6e\u5168\u4e3a 0 \u7684\u65b9\u9635\u79f0\u4e3a\u5355\u4f4d\u77e9\u9635\uff0c\u4e00\u822c\u8bb0\u4f5c<code class=\"katex-inline\">\\mathbf E<\/code>\u6216<code class=\"katex-inline\">\\mathbf I<\/code><\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\na6 = np.eye(3)\nprint(a6)\n\na7 = np.identity(4)\nprint(a7)<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"1134_%E5%AF%B9%E8%A7%92%E7%9F%A9%E9%98%B5\"><\/span>1.1.3.4 \u5bf9\u89d2\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u4ec5\u5728\u4e3b\u5bf9\u89d2\u7ebf\u4e0a\u5b58\u5728\u975e\u96f6\u5143\u7d20\uff0c\u5176\u5b83\u4f4d\u7f6e\u5168\u4e3a\u96f6\u7684\u65b9\u9635\u79f0\u4e3a\u5bf9\u89d2\u77e9\u9635\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\na = (1, 2, 3)\narray1 = np.diag(a) # \u901a\u8fc7\u5143\u7ec4\/\u5217\u8868\u6307\u5b9a\u5bf9\u89d2\u5143\u7d20\u521b\u5efa\u5bf9\u89d2\u77e9\u9635\nprint(array1)\n\narray2 = np.diag(array1) # \u4f20\u5165\u77e9\u9635\u4e5f\u53ef\u4ee5\u83b7\u5f97\u5bf9\u89d2\u5143\u7d20\uff08\u7ec4\u6210\u7684\u6570\u7ec4\uff09\nprint(array2)\n\narray3 = np.array( ((1, 2, 3),(4, 5, 6),(7, 8, 9)) )\narray4 = np.diag(np.diag(array3)) # \u53d6\u5df2\u6709\u77e9\u9635\u7684\u5bf9\u89d2\u7ebf\u521b\u5efa\u5bf9\u89d2\u77e9\u9635\nprint(array4)<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"1135_%E4%B8%8A%E4%B8%89%E8%A7%92%E7%9F%A9%E9%98%B5%E5%92%8C%E4%B8%8B%E4%B8%89%E8%A7%92%E7%9F%A9%E9%98%B5\"><\/span>1.1.3.5 \u4e0a\u4e09\u89d2\u77e9\u9635\u548c\u4e0b\u4e09\u89d2\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u4e3b\u5bf9\u89d2\u7ebf\u4e0a\u975e 0\uff0c\u4e3b\u5bf9\u89d2\u7ebf\u4e0b\u65b9\u5168\u4e3a 0 \u7684\u662f\u4e0a\u4e09\u89d2\u77e9\u9635\uff0c\u4e0a\u65b9\u5168\u4e3a 0 \u7684\u662f\u4e0b\u4e09\u89d2\u77e9\u9635<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array((\n    (1, 2, 3, 4),\n    (5, 6, 7, 8),\n    (9, 10, 11, 12),\n    (13, 14, 15, 16)\n))\n\narray1 = np.triu(A)\nprint(array1)\n\narray2 = np.tril(A)\nprint(array2)\n\narray3 = np.triu(A, 1) # \u9ed8\u8ba4\u7b2c\u4e8c\u4e2a\u53c2\u6570\u4e3a 0\uff0c\u4e3b\u5bf9\u89d2\u7ebf\u53c2\u6570\u4f1a\u4fdd\u7559\nprint(array3)\n\narray4 = np.tril(A, 1)\nprint(array4)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705582409075.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 146px; --smush-placeholder-aspect-ratio: 146\/285;\" \/><\/p>\n<h4><span class=\"ez-toc-section\" id=\"1136_%E5%AF%B9%E7%A7%B0%E7%9F%A9%E9%98%B5\"><\/span>1.1.3.6 \u5bf9\u79f0\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u6ee1\u8db3<code class=\"katex-inline\">A=A^T<\/code>\u7684\u65b9\u9635\u79f0\u4e3a\u5bf9\u79f0\u77e9\u9635\uff0c\u5373\u5143\u7d20\u5173\u4e8e\u4e3b\u5bf9\u89d2\u7ebf\u5bf9\u79f0\u3002<\/p>\n<h4><span class=\"ez-toc-section\" id=\"1137_%E5%90%8C%E5%9E%8B%E7%9F%A9%E9%98%B5\"><\/span>1.1.3.7 \u540c\u578b\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u884c\u5217\u6570\u76f8\u540c\u7684\u4e24\u4e2a\u77e9\u9635\u79f0\u4e3a\u540c\u578b\u77e9\u9635\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array((\n    (1, 2),\n    (3, 4)\n))\n\nB = np.array((\n    (1, 2, 3),\n    (4, 5, 6)\n))\n\nC = np.array((\n    (4, 5),\n    (9, 8)\n))\n\nprint(&#039;A \u548c B \u540c\u578b\uff1a&#039;, A.shape == B.shape)\nprint(&#039;A \u548c C \u540c\u578b\uff1a&#039;, A.shape == C.shape)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705582899572.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 171px; --smush-placeholder-aspect-ratio: 171\/37;\" \/><\/p>\n<h4><span class=\"ez-toc-section\" id=\"1138_%E7%9F%A9%E9%98%B5%E7%9B%B8%E7%AD%89\"><\/span>1.1.3.8 \u77e9\u9635\u76f8\u7b49<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u4e24\u4e2a\u77e9\u9635\u4e3a\u540c\u578b\u77e9\u9635\u4e14\u5bf9\u5e94\u4f4d\u7f6e\u7684\u5404\u4e2a\u5143\u7d20\u76f8\u7b49\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array((\n    (1, 2),\n    (3, 4)\n))\n\nB = np.array((\n    (1, 2, 3),\n    (4, 5, 6)\n))\n\nC = np.array((\n    (1, 2),\n    (3, 4)\n))\n\nD = np.array((\n    (3, 5),\n    (3, 1)\n))\n\nprint(&#039;A \u548c B \u76f8\u7b49\uff1a&#039;, np.array_equal(A, B))\nprint(&#039;A \u548c C \u76f8\u7b49\uff1a&#039;, np.array_equal(A, C))\nprint(&#039;A \u548c D \u76f8\u7b49\uff1a&#039;, np.array_equal(A, D))<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705583234535.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 164px; --smush-placeholder-aspect-ratio: 164\/62;\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"12_%E7%9F%A9%E9%98%B5%E8%BF%90%E7%AE%97\"><\/span>1.2 \u77e9\u9635\u8fd0\u7b97<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u77e9\u9635\u7684\u4e00\u4e9b\u6027\u8d28\uff1a<a href=\"https:\/\/blog.iyatt.com\/?p=8284\">https:\/\/blog.iyatt.com\/?p=8284<\/a><\/p>\n<h3><span class=\"ez-toc-section\" id=\"121_%E7%9F%A9%E9%98%B5%E5%8A%A0%E5%87%8F%E6%B3%95\"><\/span>1.2.1 \u77e9\u9635\u52a0\u51cf\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u540c\u578b\u77e9\u9635\u4e4b\u95f4\u624d\u53ef\u4ee5\u505a\u52a0\u51cf\u6cd5\u8fd0\u7b97\uff0c\u5bf9\u5e94\u4f4d\u7f6e\u5143\u7d20\u76f8\u52a0\u51cf<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array((\n    (1, 2, 3),\n    (5, 3, 2)\n))\n\nB = np.array((\n    (1, 9, 8),\n    (3, 2, 1)\n))\n\nprint(A + B)\nprint(A - B)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705674889339.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 99px; --smush-placeholder-aspect-ratio: 99\/74;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"122_%E7%9F%A9%E9%98%B5%E6%95%B0%E4%B9%98\"><\/span>1.2.2 \u77e9\u9635\u6570\u4e58<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u6570<code class=\"katex-inline\">\\lambda<\/code>\u4e0e\u77e9\u9635<code class=\"katex-inline\">\\mathbf A<\/code>\u7684\u4e58\u79ef\u8bb0\u4f5c<code class=\"katex-inline\">\\lambda\\mathbf A<\/code>\u6216<code class=\"katex-inline\">\\mathbf A\\lambda<\/code>\u3002\u6570\u4e58\u7684\u7ed3\u679c\u5c31\u662f\u77e9\u9635\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u90fd\u4e58\u4ee5\u8fd9\u4e2a\u6570\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array((\n    (1, 2, 3),\n    (5, 3, 2)\n))\n\nprint(8 * A)\nprint(A * 8)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705675098153.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 96px; --smush-placeholder-aspect-ratio: 96\/74;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"123_%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95\"><\/span>1.2.3 \u77e9\u9635\u4e58\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u77e9\u9635\u4e58\u6cd5\u8981\u6c42\u5de6\u4fa7\u77e9\u9635\u7684\u5217\u6570\u7b49\u4e8e\u53f3\u4fa7\u77e9\u9635\u7684\u884c\u6570\uff0c\u4e3e\u4e2a\u4f8b\u5b50:<br \/>\n\u5de6\u4e00\u884c\u4e58\u53f3\u4e00\u5217 = \u4e00\u884c\u4e00\u5217<br \/>\n\u5de6\u4e00\u884c\u4e58\u53f3\u4e8c\u5217 = \u4e00\u884c\u4e8c\u5217<br \/>\n\u5de6\u4e8c\u884c\u4e58\u53f3\u4e00\u5217 = \u4e8c\u884c\u4e00\u5217<br \/>\n\u5de6\u4e8c\u884c\u4e58\u53f3\u4e8c\u5217 = \u4e8c\u884c\u4e8c\u5217<\/p>\n<pre><code class=\"language-katex\">\\begin{aligned}\n\\begin{bmatrix}\n1 &amp; 2 &amp; 3 \\\\\n4 &amp; 5 &amp; 6\n\\end{bmatrix}\n\\begin{bmatrix}\n1 &amp; 2 \\\\\n3 &amp; 4 \\\\\n5 &amp; 6\n\\end{bmatrix}\n&amp;=\n\\begin{bmatrix}\n1\\times1+2\\times3+3\\times5 &amp; 1\\times2+2\\times4+3\\times6 \\\\\n4\\times1+5\\times3+6\\times5 &amp; 4\\times2+5\\times4+6\\times6\n\\end{bmatrix}\n\\\\\n&amp;=\n\\begin{bmatrix}\n22 &amp; 28 \\\\\n49 &amp; 64\n\\end{bmatrix}\n\\end{aligned}<\/code><\/pre>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nprint(&#039;\u77e9\u9635\u4e58\u6cd5&#039;)\n\nA = np.array((\n    (1, 2, 3),\n    (4, 5, 6)\n))\n\nB = np.array((\n    (1, 2),\n    (3, 4),\n    (5, 6)\n))\n\nprint(np.dot(A, B))\nprint(A.dot(B))\n\nprint(&#039;-----------------------------------------&#039;)\n\nprint(&#039;\u4e00\u7ef4\u6570\u7ec4\u4e58\u6cd5&#039;)\na1 = np.array( (1, 2, 3) )\na2 = np.array( (4, 5, 6) )\nprint(np.dot(a1, a2)) # \u5bf9\u5e94\u4e58\u79ef\u4e4b\u548c\n\nprint(&#039;-----------------------------------------&#039;)\n\nprint(&#039;\u540c\u578b\u77e9\u9635\u5bf9\u5e94\u5143\u7d20\u76f8\u4e58&#039;)\n\nC = np.array((\n    (1, 2),\n    (3, 4)\n))\n\nD = np.array((\n    (2, 3),\n    (10, 20)\n))\n\nprint(C * D)\nprint(np.multiply(C, D))\n\nprint(&#039;-----------------------------------------&#039;)\n\n# \u4e00\u822c array \u66f4\u5e38\u7528\nprint(&#039;matrix \u7c7b\u578b\u7684\u77e9\u9635\u4e58\u6cd5&#039;)\n\nE = np.mat((\n    (1, 2, 3),\n    (4, 5, 6)\n))\n\nF = np.mat((\n    (1, 2),\n    (3, 4),\n    (5, 6)\n))\n\nprint(E.dot(F))\nprint(np.dot(E, F))\nprint(E * F)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705676557860.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 307px; --smush-placeholder-aspect-ratio: 307\/384;\" \/><\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BE%8B_1\"><\/span>\u4f8b 1<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u5df2\u77e5\u4e0d\u540c\u5546\u5e97\u7684\u4e09\u79cd\u6c34\u679c\u7684\u4ef7\u683c\u3001\u4e0d\u540c\u4eba\u5458\u9700\u8981\u6c34\u679c\u7684\u6570\u91cf\u4ee5\u53ca\u4e0d\u540c\u57ce\u9547\u4e0d\u540c\u4eba\u5458\u7684\u6570\u76ee\u5982\u8868\u683c\u6240\u793a\u3002<\/p>\n<p><strong>\u88681 \u4e0d\u540c\u5546\u5e973\u79cd\u6c34\u679c\u7684\u4ef7\u683c<\/strong><\/p>\n<pre><code class=\"language-katex\">\\begin{array}{}\n\u5546\u5e97\u6c34\u679c\u4ef7\u683c &amp; \u5546\u5e97A &amp; \u5546\u5e97B \\\\\n\u82f9\u679c &amp; 8.5 &amp; 9 \\\\\n\u6a58\u5b50 &amp; 4.5 &amp; 4 \\\\\n\u68a8 &amp; 9 &amp; 9.5\n\\end{array}<\/code><\/pre>\n<p><strong>\u88682 \u4e0d\u540c\u4eba\u5458\u9700\u8981\u7684\u6c34\u679c\u6570\u91cf<\/strong><\/p>\n<pre><code class=\"language-katex\">\\begin{array}{}\n\u4eba\u5458A &amp; 5 &amp; 10 &amp; 3 \\\\\n\u4eba\u5458B &amp; 4 &amp; 5 &amp; 5\n\\end{array}<\/code><\/pre>\n<p><strong>\u88683 \u4e0d\u540c\u57ce\u9547\u4e0d\u540c\u4eba\u5458\u7684\u6570\u76ee<\/strong><\/p>\n<pre><code class=\"language-katex\">\\begin{array}{}\n\u57ce\u95471 &amp; 1000 &amp; 500 \\\\\n\u57ce\u95472 &amp; 2000 &amp; 1000\n\\end{array}<\/code><\/pre>\n<p>\uff081\uff09\u8ba1\u7b97\u5728\u6bcf\u4e2a\u5546\u5e97\u4e2d\u6bcf\u4e2a\u4eba\u8d2d\u4e70\u6c34\u679c\u7684\u8d39\u7528<br \/>\n\uff082\uff09\u8ba1\u7b97\u6bcf\u4e2a\u57ce\u9547\u4e2d\u6bcf\u79cd\u6c34\u679c\u7684\u8d2d\u4e70\u6570\u91cf<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [8.5, 9],\n    [4.5, 4],\n    [9, 9.5]\n]) # \u88681\n\nB = np.array([\n    [5, 10, 3],\n    [4, 5, 5]\n]) # \u88682\n\nC = np.array([\n    [1000, 500],\n    [2000, 1000]\n]) # \u88683\n\nprint(B.dot(A)) # \u7b2c 1 \u95ee\nprint(C.dot(B)) # \u7b2c 2 \u95ee<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"124_%E7%9F%A9%E9%98%B5%E7%9A%84%E4%B9%98%E6%96%B9\"><\/span>1.2.4 \u77e9\u9635\u7684\u4e58\u65b9<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u53ea\u6709\u65b9\u9635\u624d\u80fd\u8fdb\u884c\u4e58\u65b9\u8fd0\u7b97\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array((\n    (1, 2, 3),\n    (4, 5, 6),\n    (7, 8, 9)\n))\n\nB = np.mat((\n    (1, 2, 3),\n    (4, 5, 6),\n    (7, 8, 9) \n))\n\nprint(&#039;array&#039;)\nprint(A**3) # \u6bcf\u4e2a\u5143\u7d20\u81ea\u8eab\u7684 3 \u6b21\u65b9\uff08\u4e0d\u9700\u8981\u662f\u65b9\u9635\uff09\nprint(A.dot(A).dot(A)) # \u4e09\u6b21\u65b9\uff08\u77e9\u9635\u4e58\u65b9\uff09\n\nprint(&#039;matrix&#039;)\nprint(B**3) # \u4e09\u6b21\u65b9\uff08\u77e9\u9635\u4e58\u65b9\uff09<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705677509342.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 156px; --smush-placeholder-aspect-ratio: 156\/201;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"125_%E8%BD%AC%E7%BD%AE\"><\/span>1.2.5 \u8f6c\u7f6e<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u4e00\u4e2a\u77e9\u9635\u7684\u884c\u5217\u4e92\u6362\u6240\u4ea7\u751f\u7684\u77e9\u9635\u662f\u539f\u77e9\u9635\u7684\u8f6c\u7f6e\u77e9\u9635\uff0c\u77e9\u9635<code class=\"katex-inline\">\\mathbf A<\/code>\u7684\u8f6c\u7f6e\u77e9\u9635\u8bb0\u4e3a<code class=\"katex-inline\">\\mathbf A^T<\/code><\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nprint(&#039;\u77e9\u9635\u8f6c\u7f6e&#039;)\n\nA = np.array((\n    (1, 2, 3),\n    (4, 5, 6)\n))\n\nprint(A)\nprint(A.T)\nprint(np.transpose(A))\n\nprint(&#039;\u77e9\u9635\u8f6c\u7f6e\u521b\u5efa\u5bf9\u79f0\u77e9\u9635&#039;)\nB = np.random.randint(1, 100, size=[5, 5]) # \u521b\u5efa\u4e00\u4e2a\u968f\u673a\u77e9\u9635 \nC = np.triu(B) # \u53d6\u4e0a\u4e09\u89d2\nD = C + C.T - np.diag(np.diag(B)) # \u4e0a\u4e09\u89d2 + \u8f6c\u7f6e\u5f97\u5230\u7684\u5bf9\u79f0\u4e0b\u4e09\u89d2 - \u91cd\u590d\u7684\u4e3b\u5bf9\u89d2\u7ebf\nprint(D)\n\nprint(&#039;\u9a8c\u8bc1\u5bf9\u79f0\u77e9\u9635&#039;)\nprint(np.array_equal(D, D.T)) # \u5bf9\u79f0\u77e9\u9635\u7684\u539f\u77e9\u9635\u548c\u8f6c\u7f6e\u77e9\u9635\u76f8\u7b49\n\nprint(&#039;\u884c\u5217\u5411\u91cf\u8f6c\u6362&#039;)\nE = np.array( [[1, 2, 3, 4]] ) # \u5411\u91cf\u5c31\u662f\u4e00\u4e2a\u4e00\u884c\u6216\u4e00\u5217\u7684\u77e9\u9635\nprint(E)\nprint(E.T)\nprint(E.T.T)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705713734952.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 163px; --smush-placeholder-aspect-ratio: 163\/420;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"126_%E9%80%86%E7%9F%A9%E9%98%B5\"><\/span>1.2.6 \u9006\u77e9\u9635<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u5bf9\u4e8en\u9636\u65b9\u9635\uff0c\u82e5\u5b58\u5728n\u9636\u65b9\u9635<code class=\"katex-inline\">\\mathbf B<\/code>\uff0c\u4f7f\u5f97\uff1a<code class=\"katex-inline\">\\mathbf{AB}=\\mathbf{BA}=\\mathbf{E}<\/code>\uff0c\u8bb0\u4f5c\uff1a<code class=\"katex-inline\">\\mathbf B = \\mathbf A^{-1}<\/code>\uff0c<code class=\"katex-inline\">\\mathbf A = \\mathbf B^{-1}<\/code>\u3002\u4e00\u4e2a\u77e9\u9635\u53ef\u9006\uff0c\u90a3\u4e48\u9006\u77e9\u9635\u552f\u4e00\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [1, 2],\n    [2, 5]\n])\n\nB = np.mat([\n    [1, 2],\n    [2, 5]\n])\n\nprint(np.linalg.inv(A))\nprint(B.I)\n\nprint(&#039;\u5947\u5f02\u77e9\u9635 - \u6ca1\u6709\u9006\u77e9\u9635&#039;)\nC = np.array([\n    [1, -4, 0, 2],\n    [-1, 2, -1, -1],\n    [1, -2, 3, 5],\n    [2, -6, 1, 3]\n])\n\nprint(np.linalg.inv(C))<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705715511408.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 868px; --smush-placeholder-aspect-ratio: 868\/482;\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"13_%E8%A1%8C%E5%88%97%E5%BC%8F\"><\/span>1.3 \u884c\u5217\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u884c\u5217\u5f0f\u4e3b\u8981\u7528\u4e8e\u5224\u65ad\u77e9\u9635\u662f\u5426\u53ef\u9006\u53ca\u8ba1\u7b97\u7279\u5f81\u65b9\u7a0b<\/p>\n<h3><span class=\"ez-toc-section\" id=\"131_%E8%A1%8C%E5%88%97%E5%BC%8F%E5%80%BC%E8%AE%A1%E7%AE%97\"><\/span>1.3.1 \u884c\u5217\u5f0f\u503c\u8ba1\u7b97<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u9a8c\u8bc1<code class=\"katex-inline\">|\\mathbf A^{-1}|=\\frac{1}{|\\mathbf A|}<\/code><br \/>\nNumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [1, 2],\n    [2, 5]\n])\n\nprint(1 \/ np.linalg.det(A))\nprint(\n    np.linalg.det(\n        np.linalg.inv(A)\n    )\n)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705848981887.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 158px; --smush-placeholder-aspect-ratio: 158\/42;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"132_%E7%BA%BF%E6%80%A7%E6%96%B9%E7%A8%8B%E7%BB%84%E6%B1%82%E8%A7%A3\"><\/span>1.3.2 \u7ebf\u6027\u65b9\u7a0b\u7ec4\u6c42\u89e3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u89e3\u65b9\u7a0b\u7ec4<\/p>\n<pre><code class=\"language-katex\">\\left \\{\n\\begin{array}{l}\nx+y+z=2 \\\\\nx+2y+4z=3 \\\\\nx+3y+9z=5\n\\end{array}\n\\right .<\/code><\/pre>\n<p>\u2460 \u77e9\u9635\u89e3\u7ebf\u6027\u65b9\u7a0b\u7ec4<\/p>\n<pre><code class=\"language-katex\">\\begin{array}{l}\n\\mathbf A\\mathbf X=\\mathbf B \\\\\n\\mathbf A^{-1}\\mathbf A\\mathbf X=\\mathbf A^{-1}B \\\\\n\\mathbf X =\\mathbf A^{-1}B\n\\end{array}<\/code><\/pre>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [1, 1, 1],\n    [1, 2, 4],\n    [1, 3, 9]\n])\n\nB = np.array([2, 3, 5])\n\nif np.linalg.det(A) == 0:\n    print(&#039;\u65b9\u7a0b\u7ec4\u65e0\u89e3\u6216\u6ca1\u6709\u552f\u4e00\u89e3&#039;)\nelse:\n    print(np.dot(np.linalg.inv(A),\n          B))<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705720896505.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 149px; --smush-placeholder-aspect-ratio: 149\/34;\" \/><\/p>\n<p>\u2461 NumPy \u89e3\u7ebf\u6027\u65b9\u7a0b\u7ec4<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [1, 1, 1],\n    [1, 2, 4],\n    [1, 3, 9]\n])\n\nB = np.array([2, 3, 5]).reshape(3, 1)\n\nprint(np.linalg.solve(A, B))<\/code><\/pre>\n<p>\u2462 SymPy \u89e3\u7ebf\u6027\u65b9\u7a0b\u7ec4<\/p>\n<pre><code class=\"language-py\">import sympy as sy\n\nsy.init_printing(use_latex=True)\n\nx, y, z = sy.symbols(&#039;x y z&#039;)\nf1 = sy.Eq(x + y + z, 2)\nf2 = sy.Eq(x + 2 * y + 4 * z, 3)\nf3 = sy.Eq(x + 3 * y + 9 * z, 5)\n\ndisplay(sy.solve((f1, f2, f3)))<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705721101561.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 196px; --smush-placeholder-aspect-ratio: 196\/68;\" \/><\/p>\n<p>\u2463 \u514b\u62c9\u9ed8\u6cd5\u5219<br \/>\nNumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [1, 1, 1],\n    [1, 2, 4],\n    [1, 3, 9]\n])\n\nB = np.array([2, 3, 5])\n\nA_det = np.linalg.det(A)\n\nif A_det == 0:\n    print(&#039;\u65b9\u7a0b\u7ec4\u65e0\u89e3\u6216\u6ca1\u6709\u552f\u4e00\u89e3&#039;)\nelse:\n    for i in range(A.shape[1]): # \u5217\n        Ai = np.copy(A)\n        Ai[:, i] = B\n        Ai_det = np.linalg.det(Ai)\n        print(&#039;x{} = {}&#039;.format(i + 1, Ai_det \/ A_det))<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705721930944.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 199px; --smush-placeholder-aspect-ratio: 199\/55;\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"14_%E7%9F%A9%E9%98%B5%E7%9A%84%E7%A7%A9\"><\/span>1.4 \u77e9\u9635\u7684\u79e9<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u79e9\u53cd\u6620\u4e86\u77e9\u9635\u4e2d\u884c\uff08\u5217\uff09\u7684\u6700\u5927\u7ebf\u6027\u65e0\u5173\u6570\u91cf\u3002<br \/>\n\u6bd4\u5982<\/p>\n<pre><code class=\"language-katex\">\\left \\{\n\\begin{array}{l}\n2x + y = 0 \\\\\n4x + 2y = 0\n\\end{array}\n\\right .<\/code><\/pre>\n<p>\u5199\u6210\u77e9\u9635<\/p>\n<pre><code class=\"language-katex\">\\begin{bmatrix}\n2 &amp; 1 \\\\\n4 &amp; 2\n\\end{bmatrix}<\/code><\/pre>\n<p>\u8fd9\u4e24\u4e2a\u65b9\u7a0b\u662f\u6210\u6bd4\u4f8b\u7684\uff0c\u4e5f\u5c31\u662f\u7ebf\u6027\u76f8\u5173\uff0c\u5bf9\u5e94\u7684\u77e9\u9635\u79e9\u4e3a 1\uff0c\u5c0f\u4e8e\u672a\u77e5\u6570\u4e2a\u6570\uff0c\u8fd9\u4e2a\u65b9\u7a0b\u7ec4\u6709\u65e0\u6570\u7ec4\u89e3\u3002<\/p>\n<pre><code class=\"language-katex\">\\left \\{\n\\begin{array}{l}\n2x + y = 0 \\\\\n4x + 3y = 0\n\\end{array}\n\\right .<\/code><\/pre>\n<p>\u5199\u6210\u77e9\u9635<\/p>\n<pre><code class=\"language-katex\">\\begin{bmatrix}\n2 &amp; 1 \\\\\n4 &amp; 3\n\\end{bmatrix}<\/code><\/pre>\n<p>\u8fd9\u4e2a\u65b9\u7a0b\u7ec4\u4e2d\u7684\u4e24\u4e2a\u65b9\u7a0b\u5c31\u662f\u7ebf\u6027\u65e0\u5173\u7684\uff0c\u79e9\u4e3a 2\uff0c\u7b49\u4e8e\u672a\u77e5\u6570\u4e2a\u6570\uff0c\u6709\u552f\u4e00\u786e\u5b9a\u7684\u4e00\u7ec4\u89e3\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nE = np.eye(5)\nprint(np.linalg.matrix_rank(E)) # \u5355\u4f4d\u77e9\u9635\u7684\u79e9\u7b49\u4e8e\u9636\u6570\n\nA = np.array([\n    [1, -4, 0, 2],\n    [-1, 2, -1, -1],\n    [1, -2, 3, 5],\n    [2, -6, 1, 3]\n])\nprint(np.linalg.matrix_rank(A)) # \u79e9 3 &lt; 4\uff0c\u884c\u5217\u5f0f\u503c\u4e3a 0\uff0c\u524d\u9762\u6c42\u9006\u77e9\u9635\u90e8\u5206\u9a8c\u8bc1\u8fc7\uff0c\u8fd9\u4e2a\u77e9\u9635\u6ca1\u6709\u9006\u77e9\u9635<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705742288720.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 31px; --smush-placeholder-aspect-ratio: 31\/42;\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"15_%E5%90%91%E9%87%8F\"><\/span>1.5 \u5411\u91cf<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"151_%E5%88%9B%E5%BB%BA%E5%90%91%E9%87%8F\"><\/span>1.5.1 \u521b\u5efa\u5411\u91cf<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nprint(&quot;\u4e00\u7ef4\u6570\u7ec4\u8f6c\u5411\u91cf&quot;)\nA = np.array([1, 2, 3, 4]) # \u4e00\u7ef4\u6570\u7ec4\nprint(A)\nB = A.reshape(1, 4) # \u884c\u5411\u91cf\nprint(B)\nC = A.reshape(4, 1) # \u5217\u5411\u91cf\nprint(C)\n\nprint(&#039;\u76f4\u63a5\u5b9a\u4e49\u5411\u91cf&#039;)\nD = np.array([[11, 22, 33, 44, 55]])\nprint(D)\nE = np.array([[1],[2],[3],[4]])\nprint(E)\n\nprint(&#039;\u968f\u673a\u5411\u91cf&#039;)\nF = np.random.random((1, 3))\nprint(F)\nG = np.random.random((3, 1))\nprint(G)\nH = np.random.randint(1, 100, size=(1, 6))\nprint(H)\nI = np.random.randint(1, 100, size=(6, 1))\nprint(I)\n\nprint(&#039;\u77e9\u9635\u5207\u7247\u751f\u6210\u5411\u91cf&#039;)\nJ = np.array([\n    [1, 2, 3, 4],\n    [5, 6, 7, 8]\n])\nprint(J)\nprint(J[:,0]) # 0 \u5217\u6570\u7ec4\nprint(J[:,0].reshape(-1, 1)) # \u7b2c 0 \u5217\u5217\u5411\u91cf\nprint(J[1,:].reshape(1, -1)) # \u7b2c 1 \u884c\u884c\u5411\u91cf<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705737725817.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 285px; --smush-placeholder-aspect-ratio: 285\/552;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"152_%E5%86%85%E7%A7%AF\"><\/span>1.5.2 \u5185\u79ef<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code class=\"katex-inline\">[\\mathbf x,\\mathbf y]<\/code>\u8868\u793a\u5411\u91cf<code class=\"katex-inline\">\\mathbf x<\/code>\u548c\u5411\u91cf<code class=\"katex-inline\">\\mathbf y<\/code>\u7684\u5185\u79ef\uff0c\u7528\u77e9\u9635\u4e58\u6cd5\u8868\u793a<code class=\"katex-inline\">[\\mathbf x,\\mathbf y]=[x_1x_2\\cdots x_n]\\begin{bmatrix} y_1 \\\\ y_2 \\\\ \\vdots \\\\ y_n\\end{bmatrix}<\/code><\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nprint(&#039;\u77e9\u9635\u8868\u793a\u5411\u91cf\u65f6&#039;)\nA = np.array([[1, 2, 3]])\nB = np.array([[4, 5, 6]])\n\nprint(A)\nprint(B)\n\nprint(&#039;\u884c\u5411\u91cf\u5185\u79ef\uff1a&#039;, np.dot(A, B.T))\n\nA = A.reshape(3, 1)\nB = B.reshape(3, 1)\n\nprint(A)\nprint(B)\n\nprint(&#039;\u5217\u5411\u91cf\u5185\u79ef\uff1a&#039;, np.dot(A.T, B))\n\nprint(&#039;\u4e00\u7ef4\u6570\u7ec4\u8868\u793a\u5411\u91cf\u65f6&#039;)\n\nC = np.array([1, 2, 3])\nD = np.array([4, 5, 6])\n\nprint(C)\nprint(D)\n\nprint(np.dot(C, D))\nprint(np.inner(C, D))<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705799436592.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 156px; --smush-placeholder-aspect-ratio: 156\/276;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"153_%E9%95%BF%E5%BA%A6\"><\/span>1.5.3 \u957f\u5ea6<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code class=\"katex-inline\">||\\mathbf x||=\\sqrt{[x,x]}=\\sqrt{x_1^2+x_2^2+\\cdots+x_n^2}<\/code>\u4e3an\u7ef4\u5411\u91cfx\u7684\u957f\u5ea6\uff0c\u5f53<code class=\"katex-inline\">||\\mathbf x||=1<\/code>\u65f6\uff0c\u79f0<code class=\"katex-inline\">\\mathbf x<\/code>\u4e3a\u5355\u4f4d\u5411\u91cf\u3002<br \/>\n\u5bf9\u4e8e\u5411\u91cf<code class=\"katex-inline\">\\mathbf\\alpha<\/code>\uff0c\u5982\u679c<code class=\"katex-inline\">\\mathbf x=\\frac{\\mathbf\\alpha}{||\\mathbf\\alpha||}<\/code>\uff0c\u5219<code class=\"katex-inline\">\\mathbf x<\/code>\u662f\u4e00\u4e2a\u5355\u4f4d\u5411\u91cf\uff0c\u7531\u5411\u91cf<code class=\"katex-inline\">\\mathbf\\alpha<\/code>\u5f97\u5230<code class=\"katex-inline\">\\mathbf x<\/code>\u7684\u8fc7\u7a0b\u79f0\u4e3a<code class=\"katex-inline\">\\alpha<\/code>\u7684\u5355\u4f4d\u5316\uff0c\u4e5f\u79f0\u6807\u51c6\u5316\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([[1, 2, 3]])\nB = np.linalg.norm(A) # \u957f\u5ea6\nprint(B)\n\nC = A \/ B # \u5355\u4f4d\u5411\u91cf\nprint(C)\nprint(np.linalg.norm(C)) # \u5355\u4f4d\u5411\u91cf\u7684\u957f\u5ea6<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705816246736.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 280px; --smush-placeholder-aspect-ratio: 280\/56;\" \/><\/p>\n<p>\u5b9a\u4e49\u6c42\u957f\u5ea6<br \/>\nNumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([[1, 2, 3]])\nprint(np.sum(A**2)**0.5) # \u5b9a\u4e49\u6c42\u957f\u5ea6<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705816352242.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 154px; --smush-placeholder-aspect-ratio: 154\/35;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"154_%E5%A4%B9%E8%A7%92\"><\/span>1.5.4 \u5939\u89d2<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u7531<code class=\"katex-inline\">[\\mathbf x,\\mathbf y]=||\\mathbf x||\\cdot||\\mathbf y||\\cdot\\cos\\theta<\/code>\u6709<code class=\"katex-inline\">\\cos\\theta=\\frac{[\\mathbf x,\\mathbf y]}{||\\mathbf x||\\cdot||\\mathbf y||}<\/code><\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([[1, 0]])\nB = np.array([[1, 3**0.5]])\n\ncos_value = np.dot(A, B.T) \/ (np.linalg.norm(A) * np.linalg.norm(B)) # \u4f59\u5f26\u503c\nprint(cos_value)\nprint(np.arccos(cos_value) * 180 \/ np.pi) # \u89d2\u5ea6<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705817018298.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 76px; --smush-placeholder-aspect-ratio: 76\/44;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"155_%E6%AD%A3%E4%BA%A4\"><\/span>1.5.5 \u6b63\u4ea4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u5f53\u4e24\u4e2a\u5411\u91cf\u7684\u5185\u79ef\u4e3a0\u65f6\uff0c\u79f0\u4e24\u4e2a\u5411\u91cf\u6b63\u4ea4\uff0c\u5373\u4e24\u4e2a\u5411\u91cf\u5782\u76f4\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"16_NumPy_%E6%95%B0%E7%BB%84\"><\/span>1.6 NumPy \u6570\u7ec4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"161_%E7%AD%89%E5%B7%AE_1\"><\/span>1.6.1 \u7b49\u5dee 1<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.arange(0, 10, 1) # [0,10) \u4e4b\u95f4\uff0c\u95f4\u9694 1\nprint(A)\n\nB = np.arange(100, 1000, 200) # [100, 1000) \u4e4b\u95f4\uff0c\u95f4\u9694 200\nprint(B)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705850706242.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 168px; --smush-placeholder-aspect-ratio: 168\/46;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"162_%E7%AD%89%E5%B7%AE_2\"><\/span>1.6.2 \u7b49\u5dee 2<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.linspace(0, 10, 10) # [0,10] \u4e4b\u95f4\uff0c10 \u4e2a\nprint(A)\n\nB = np.linspace(10, 200, 30) # [10, 200] \u4e4b\u95f4\uff0c200 \u4e2a\nprint(B)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705850466205.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 529px; --smush-placeholder-aspect-ratio: 529\/149;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"163_%E7%AD%89%E6%AF%94\"><\/span>1.6.3 \u7b49\u6bd4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.logspace(0, 3, 7) # [10^0, 10^3]\uff0c7 \u4e2a\nprint(A)\n\nB = np.logspace(1, 6, 5, base=2) # [2^1, 2^6], 5 \u4e2a\nprint(B)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705850724772.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 461px; --smush-placeholder-aspect-ratio: 461\/63;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"164_%E7%BB%9F%E8%AE%A1\"><\/span>1.6.4 \u7edf\u8ba1<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [1, 7, 3],\n    [4, 5, 6]\n])\n\nprint(&#039;\u77e9\u9635\\n&#039;, A)\n\nprint(&#039;\u6700\u5927\u503c\\n&#039;, A.max())\nprint(&#039;\u6700\u5c0f\u503c\\n&#039;, A.min())\nprint(&#039;\u6bcf\u5217\u7684\u6700\u5927\u503c\\n&#039;, A.max(axis=0))\nprint(&#039;\u6bcf\u884c\u7684\u6700\u5927\u503c\\n&#039;, A.max(axis=1))\nprint(&#039;\u6700\u5927\u503c\u7684\u4f4d\u7f6e\\n&#039;, A.argmax()) # \u4ece 0 \u5f00\u59cb\u7d22\u5f15\nprint(&#039;\u6700\u5c0f\u503c\u7684\u4f4d\u7f6e\\n&#039;, A.argmin())\nprint(&#039;\u6bcf\u5217\u6700\u5927\u503c\u7684\u4f4d\u7f6e\\n&#039;, A.argmax(axis=0))\n\nprint(&#039;\u77e9\u9635\u6c42\u548c\\n&#039;, A.sum())\nprint(&#039;\u6309\u884c\u6c42\u548c\\n&#039;, A.sum(axis=1))\n\nprint(&#039;\u77e9\u9635\u5e73\u5747\u503c\\n&#039;, A.mean())\nprint(&#039;\u6bcf\u5217\u7684\u5e73\u5747\u503c\\n&#039;, A.mean(axis=0))\n\nprint(&#039;\u53d6\u4e2d\u503c\\n&#039;, np.median(A))\nprint(&#039;\u6309\u5217\u53d6\u4e2d\u503c&#039;, np.median(A, axis=0))<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1705851616916.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 185px; --smush-placeholder-aspect-ratio: 185\/489;\" \/><\/p>\n<h1><span class=\"ez-toc-section\" id=\"2_%E7%89%B9%E5%BE%81%E5%80%BC%E4%B8%8E%E7%9F%A9%E9%98%B5%E5%88%86%E8%A7%A3\"><\/span>2 \u7279\u5f81\u503c\u4e0e\u77e9\u9635\u5206\u89e3<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"21_%E7%89%B9%E5%BE%81%E5%80%BC%E4%B8%8E%E7%89%B9%E5%BE%81%E5%90%91%E9%87%8F\"><\/span>2.1 \u7279\u5f81\u503c\u4e0e\u7279\u5f81\u5411\u91cf<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><code class=\"katex-inline\">\\mathbf A\\mathbf x=\\lambda\\mathbf x<\/code>\uff0c\u5176\u4e2d<code class=\"katex-inline\">\\mathbf x<\/code>\u4e3a\u5411\u91cf\uff0c<code class=\"katex-inline\">\\lambda<\/code>\u5bf9\u5e94\u957f\u5ea6\u53d8\u5316\u6bd4\u4f8b\uff0c\u79f0<code class=\"katex-inline\">\\lambda<\/code>\u4e3a\u7279\u5f81\u503c\uff0c<code class=\"katex-inline\">\\mathbf x<\/code>\u4e3a<code class=\"katex-inline\">\\lambda<\/code>\u5bf9\u5e94\u7684\u7279\u5f81\u5411\u91cf\u3002<br \/>\n\u4e0a\u5f0f\u6574\u7406\u53ef\u4ee5\u5f97\u5230<code class=\"katex-inline\">(\\mathbf A-\\lambda\\mathbf E)\\mathbf x=0<\/code>\uff0c\u5176\u4e2d<code class=\"katex-inline\">\\mathbf E<\/code>\u4e3a\u5355\u4f4d\u77e9\u9635\u3002\u5176\u7cfb\u6570\u884c\u5217\u5f0f<code class=\"katex-inline\">|\\mathbf A-\\lambda\\mathbf E|=0<\/code>\u79f0\u4e3a<code class=\"katex-inline\">\\mathbf A<\/code>\u7684\u7279\u5f81\u65b9\u7a0b\uff0c<code class=\"katex-inline\">|\\mathbf A-\\lambda\\mathbf E|<\/code>\u79f0\u4e3a<code class=\"katex-inline\">\\mathbf A<\/code>\u7684\u7279\u5f81\u591a\u9879\u5f0f\u3002<code class=\"katex-inline\">\\mathbf x<\/code>\u6709\u975e\u96f6\u89e3\u7684\u5145\u5206\u5fc5\u8981\u6761\u4ef6\u662f<code class=\"katex-inline\">|\\mathbf A-\\lambda\\mathbf E|=0<\/code>\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E4%BE%8B_1-2\"><\/span>\u4f8b 1<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u6c42\u89e3<code class=\"katex-inline\">\\mathbf A=\\begin{bmatrix}-1 & 0 & 1\\\\ 1 & 2 & 0\\\\-4 & 0 & 3\\end{bmatrix}<\/code>\u7684\u7279\u5f81\u503c\u548c\u7279\u5f81\u5411\u91cf\u3002<\/p>\n<p>\uff081\uff09\u8ba1\u7b97\u7279\u5f81\u591a\u9879\u5f0f<code class=\"katex-inline\">|\\mathbf A-\\lambda\\mathbf E|<\/code><\/p>\n<pre><code class=\"language-katex\">\\begin{aligned}\n|\\mathbf A-\\lambda\\mathbf E|&amp;=\n\\begin{bmatrix}\n-1-\\lambda &amp; 0 &amp; 1 \\\\\n1 &amp; 2-\\lambda &amp; 0 \\\\\n-4 &amp; 0 &amp; 3-\\lambda\n\\end{bmatrix}\n\\\\\n&amp;=(1-\\lambda)^2(2-\\lambda)\n\\end{aligned}<\/code><\/pre>\n<p>\uff082\uff09\u6c42\u7279\u5f81\u503c<code class=\"katex-inline\">\\lambda<\/code><\/p>\n<p><code class=\"katex-inline\">\\lambda_1=2,\\lambda_2=\\lambda_3=1<\/code><\/p>\n<p>\uff083\uff09\u6c42\u5404\u4e2a\u7279\u5f81\u503c\u5bf9\u5e94\u7684\u7279\u5f81\u5411\u91cf<\/p>\n<p>\u5f53\u7279\u5f81\u503c\u4e3a 2 \u65f6<\/p>\n<pre><code class=\"language-katex\">\\begin{aligned}\n\\mathbf A-2\\mathbf E&amp;=\n\\begin{bmatrix}\n-3 &amp; 0 &amp; 1 \\\\\n1 &amp; 0 &amp; 0 \\\\\n-4 &amp; 0 &amp; 1\n\\end{bmatrix}\n\\\\\n&amp;\\overset{r_3+4r_2}{\\longrightarrow}\n\\begin{bmatrix}\n-3 &amp; 0 &amp; 1 \\\\\n1 &amp; 0 &amp; 0 \\\\\n0 &amp; 0 &amp; 1\n\\end{bmatrix}\n\\\\\n&amp;\\overset{r_1+3r_2}{\\longrightarrow}\n\\begin{bmatrix}\n0 &amp; 0 &amp; 1 \\\\\n1 &amp; 0 &amp; 0 \\\\\n0 &amp; 0 &amp; 1\n\\end{bmatrix}\n\\\\\n&amp;\\overset{r_3-r_1}{\\longrightarrow}\n\\begin{bmatrix}\n0 &amp; 0 &amp; 1 \\\\\n1 &amp; 0 &amp; 0 \\\\\n0 &amp; 0 &amp; 0\n\\end{bmatrix}\n\\\\\n&amp;\\overset{r_1,r_2\u5bf9\u8c03}{\\longrightarrow}\n\\begin{bmatrix}\n1 &amp; 0 &amp; 0 \\\\\n0 &amp; 0 &amp; 1 \\\\\n0 &amp; 0 &amp; 0\n\\end{bmatrix}\n\\end{aligned}<\/code><\/pre>\n<p>\u7ecf\u8fc7\u4e0a\u9762\u521d\u7b49\u884c\u53d8\u6362\uff0c\u5f97\u5230\u7684\u5373\u662f<\/p>\n<pre><code class=\"language-katex\">\\left \\{\n\\begin{array}{l}\nx_1+0x_2+0x_3=0 \\\\\n0x_1+0x_2+x_3=0\n\\end{array}\n\\right .<\/code><\/pre>\n<p>\u5373<\/p>\n<pre><code class=\"language-katex\">\\left \\{\n\\begin{array}{l}\nx_1=0 \\\\\nx_3=0\n\\end{array}\n\\right .<\/code><\/pre>\n<p>\u4e09\u4e2a\u672a\u77e5\u6570\uff0c\u4f46\u662f\u6709\u6548\u65b9\u7a0b\u53ea\u6709\u4e24\u4e2a\uff08\u79e9\u4e3a2\uff09\uff0c\u57fa\u7840\u89e3\u7cfb\u4e2a\u6570=3-2=1<br \/>\n\u4ee4<code class=\"katex-inline\">x_2=1<\/code>\uff0c\u6709<code class=\"katex-inline\">\\begin{pmatrix}x_1\\\\x_3\\end{pmatrix}=\\begin{pmatrix} 0\\\\0\\end{pmatrix}<\/code>\uff0c\u5f97\u57fa\u7840\u89e3\u7cfb<code class=\"katex-inline\">\\xi_1=\\begin{pmatrix}x_1\\\\x_2\\\\x_3\\end{pmatrix}=\\begin{pmatrix}0\\\\1\\\\0\\end{pmatrix}<\/code><br \/>\n\u5219<code class=\"katex-inline\">k\\xi_1(k\\ne0)<\/code>\u662f<code class=\"katex-inline\">\\lambda_1=2<\/code>\u7684\u5168\u90e8\u7279\u5f81\u5411\u91cf<\/p>\n<p>\u5f53\u7279\u5f81\u503c\u4e3a 1 \u65f6\uff0c<\/p>\n<pre><code class=\"language-katex\">\\mathbf A-2\\mathbf E=\n\\begin{bmatrix}\n-2 &amp; 0 &amp; 1 \\\\\n1 &amp; 1 &amp; 0 \\\\\n-4 &amp; 0 &amp; 2\n\\end{bmatrix}\n\\rightarrow\n\\begin{bmatrix}\n1 &amp; 1 &amp; 0 \\\\\n-2 &amp; 0 &amp; 1 \\\\\n0 &amp; 0 &amp; 0\n\\end{bmatrix}<\/code><\/pre>\n<p>\u57fa\u7840\u89e3\u7cfb\u4e2a\u6570=3-2=1<\/p>\n<pre><code class=\"language-katex\">\\left \\{\n\\begin{array}{l}\nx_2=-x_1 \\\\\nx_3=2x_1\n\\end{array}\n\\right .<\/code><\/pre>\n<p>\u4ee4<code class=\"katex-inline\">x_1=1<\/code>\uff0c\u5f97\u57fa\u7840\u89e3\u7cfb<code class=\"katex-inline\">\\xi_2=\\begin{pmatrix}x_1\\\\x_2\\\\x_3\\end{pmatrix}=\\begin{pmatrix} 1\\\\-1\\\\2\\end{pmatrix}<\/code><\/p>\n<p>\u5219 <code class=\"katex-inline\">k\\xi_2(k\\ne0)<\/code>\u662f<code class=\"katex-inline\">\\lambda_2=\\lambda_3=1<\/code>\u7684\u5168\u90e8\u7279\u5f81\u5411\u91cf<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy\n\nA = np.array([\n    [-1, 0, 1],\n    [1, 2, 0],\n    [-4, 0, 3]\n])\n\neig_val, eig_vex = np.linalg.eig(A)\nprint(np.round(eig_val, 1), &#039;\\n&#039;) # \u4fdd\u7559\u4e00\u4f4d\u5c0f\u6570\u8f93\u51fa\nprint(np.round(eig_vex, 1))<\/code><\/pre>\n<p>\u7b2c\u4e00\u884c\u7684\u662f\u7279\u5f81\u503c\uff0c\u548c\u4e0a\u9762\u8ba1\u7b97\u7ed3\u679c\u4e00\u6837\u3002\u4e0b\u9762\u7684\u7279\u5f81\u77e9\u9635\u662f\u7531\u7279\u5f81\uff08\u5217\uff09\u5411\u91cf\u7ec4\u6210\u7684\uff0c\u56e0\u4e3a\u662f\u6807\u51c6\u5316\u8fc7\u7684\uff0c\u5411\u91cf\u5e73\u65b9\u548c\u4e3a 1\uff0c\u6bd4\u5982 0.4 -0.4 0.8\uff0c\u770b\u6bd4\u4f8b\u5c31\u662f 1 -1 2\uff0c\u548c\u4e0a\u9762\u8ba1\u7b97\u7ed3\u679c\u76f8\u7b26\u3002<br \/>\n<img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1706149442313.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 231px; --smush-placeholder-aspect-ratio: 231\/96;\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"22_%E7%89%B9%E5%BE%81%E5%80%BC%E6%80%A7%E8%B4%A8\"><\/span>2.2 \u7279\u5f81\u503c\u6027\u8d28<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\uff081\uff09\u5bf9\u89d2\u77e9\u9635\u3001\u4e0a\u4e09\u89d2\u77e9\u9635\u548c\u4e0b\u4e09\u89d2\u77e9\u9635\u7684\u7279\u5f81\u503c\u5c31\u662f\u5b83\u4eec\u7684\u6240\u6709\u4e3b\u5bf9\u89d2\u7ebf\u5143\u7d20\u3002<br \/>\n\uff082\uff09\u82e5<code class=\"katex-inline\">\\lambda<\/code>\u662f\u53ef\u9006\u77e9\u9635<code class=\"katex-inline\">\\mathbf A<\/code>\u7684\u7279\u5f81\u503c\uff0c\u5219<code class=\"katex-inline\">\\lambda^{-1}<\/code>\u662f<code class=\"katex-inline\">\\mathbf A^{-1}<\/code>\u7684\u7279\u5f81\u503c<br \/>\n\uff083\uff09\u4e00\u4e2a\u65b9\u9635\u7684\u7279\u5f81\u503c\u5404\u4e0d\u76f8\u540c\uff0c\u5219\u5bf9\u5e94\u7684\u7279\u5f81\u5411\u91cf\u90fd\u7ebf\u6027\u65e0\u5173<br \/>\n\uff084\uff09\u5bf9\u79f0\u77e9\u9635\u7684\u7279\u5f81\u503c\u4e00\u5b9a\u662f\u5b9e\u6570\uff0c\u4e14\u4e0d\u540c\u7279\u5f81\u503c\u7684\u7279\u5f81\u5411\u91cf\u4e24\u4e24\u6b63\u4ea4<\/p>\n<h2><span class=\"ez-toc-section\" id=\"23_%E7%89%B9%E5%BE%81%E7%A9%BA%E9%97%B4\"><\/span>2.3 \u7279\u5f81\u7a7a\u95f4<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u4e00\u4e2a\u7279\u5f81\u503c\u4e00\u65e6\u786e\u5b9a\uff0c\u5176\u5bf9\u5e94\u7684\u7279\u5f81\u5411\u91cf\u4e58\u4ee5\u4efb\u610f\u4e00\u4e2a\u6807\u91cf\u5f97\u5230\u7684\u65b0\u7279\u5f81\u5411\u91cf\u5fc5\u7136\u4e5f\u6ee1\u8db3\u7279\u5f81\u65b9\u7a0b\u3002\u56e0\u6b64\uff0c\u4e00\u4e2a\u7279\u5f81\u503c\u5bf9\u5e94\u65e0\u6570\u4e2a\u7279\u5f81\u5411\u91cf\uff0c\u5b83\u4eec\u7684\u65b9\u5411\u76f8\u540c\uff0c\u4f46\u957f\u5ea6\u4e0d\u540c\u3002<br \/>\n\u4e00\u4e2a\u7279\u5f81\u503c\u5bf9\u5e94\u7684\u6240\u6709\u7279\u5f81\u5411\u91cf\u6240\u7ec4\u6210\u7684\u7a7a\u95f4\uff0c\u79f0\u4e4b\u4e3a\u7279\u5f81\u7a7a\u95f4\u3002\u5f53\u7279\u5f81\u503c\u786e\u5b9a\uff0c\u7279\u5f81\u7a7a\u95f4\u5c31\u786e\u5b9a\u4e86\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"24_%E7%89%B9%E5%BE%81%E5%80%BC%E5%88%86%E8%A7%A3\"><\/span>2.4 \u7279\u5f81\u503c\u5206\u89e3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u5c06\u77e9\u9635<code class=\"katex-inline\">\\mathbf A<\/code>\u5206\u89e3\u4e3a<code class=\"katex-inline\">\\mathbf A=\\mathbf Q\\sum\\mathbf Q^{-1}<\/code> \u7684\u5f62\u5f0f<br \/>\n\u524d\u63d0<code class=\"katex-inline\">\\mathbf A<\/code>\u662f n \u9636\u65b9\u9635\u4e14\u53ef\u5bf9\u89d2\u5316<br \/>\n<code class=\"katex-inline\">\\mathbf Q<\/code> \u662f <code class=\"katex-inline\">\\mathbf A<\/code> \u7684\u7279\u5f81\u5411\u91cf\u7ec4\u6210\u7684\u77e9\u9635\uff0c<code class=\"katex-inline\">\\sum<\/code> \u662f\u5bf9\u89d2\u9635\uff0c\u5176\u4e3b\u5bf9\u89d2\u7ebf\u4e0a\u7684\u5143\u7d20\u662f<code class=\"katex-inline\">\\mathbf A<\/code>\u7684\u7279\u5f81\u503c\u3002<\/p>\n<p>\u5982<\/p>\n<pre><code class=\"language-katex\">\\mathbf A=\n\\begin{bmatrix}\n4 &amp; 2 \\\\\n1 &amp; 5\n\\end{bmatrix}\n=\n\\begin{bmatrix}\n1 &amp; -2 \\\\\n1 &amp; 1\n\\end{bmatrix}\n\\begin{bmatrix}\n6 &amp; 0\\\\\n0 &amp; 3\n\\end{bmatrix}\n\\begin{bmatrix}\n\\frac{1}{3} &amp; \\frac{2}{3} \\\\\n-\\frac{1}{3} &amp; \\frac{1}{3}\n\\end{bmatrix}<\/code><\/pre>\n<p><code class=\"katex-inline\">\\mathbf A<\/code>\u7684\u7279\u5f81\u503c\u5206\u522b\u4e3a 6 \u548c 3\uff0c\u5206\u522b\u5bf9\u5e94\u7684\u7279\u5f81\u5411\u91cf\u4e3a<code class=\"katex-inline\">\\begin{pmatrix}1 \\\\ 1\\end{pmatrix}<\/code>\u3001<code class=\"katex-inline\">\\begin{pmatrix}-2 \\\\ 1\\end{pmatrix}<\/code>\uff0c<code class=\"katex-inline\">\\mathbf A<\/code>\u7684\u7279\u5f81\u5411\u91cf\u77e9\u9635\u7684\u9006\u77e9\u9635\u662f<code class=\"katex-inline\">\\begin{bmatrix}\\frac{1}{3} & \\frac{2}{3} \\\\-\\frac{1}{3} & \\frac{1}{3}\\end{bmatrix}<\/code><\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [4, 2],\n    [1, 5]\n])\n\neig_val, eig_vex = np.linalg.eig(A) # \u7279\u5f81\u503c\uff0c\u7279\u5f81\u5411\u91cf\u77e9\u9635\ninv = np.linalg.inv(eig_vex) # \u7279\u5f81\u5411\u91cf\u77e9\u9635\u7684\u9006\u77e9\u9635\n\nprint(\n    eig_vex.dot(np.diag(eig_val)).dot(inv)\n)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1706200049746.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 106px; --smush-placeholder-aspect-ratio: 106\/48;\" \/><\/p>\n<p>\u8fdb\u4e00\u6b65\uff0c\u5bf9\u4e8e<code class=\"katex-inline\">\\mathbf A^n<\/code>\u6709<code class=\"katex-inline\">\\mathbf A^n=\\mathbf Q\\sum^n\\mathbf Q^{-1}<\/code>\uff0c\u5f53 n \u6bd4\u8f83\u5927\u65f6\uff0c\u76f8\u6bd4\u4e8e\u76f4\u63a5\u8ba1\u7b97\uff0c\u5206\u89e3\u540e\u8ba1\u7b97\u91cf\u66f4\u5c0f<\/p>\n<h2><span class=\"ez-toc-section\" id=\"25_%E5%A5%87%E5%BC%82%E5%80%BC%E5%88%86%E8%A7%A3%EF%BC%88SVD%EF%BC%89\"><\/span>2.5 \u5947\u5f02\u503c\u5206\u89e3\uff08SVD\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u524d\u9762\u7684\u7279\u5f81\u503c\u5206\u89e3\u53ea\u80fd\u5728\u65b9\u9635\u4f7f\u7528 \uff0c\u800c SVD \u9002\u7528\u4e8e\u5bf9\u4efb\u610f\u77e9\u9635\u8fdb\u884c\u77e9\u9635\u5206\u89e3\u3002<\/p>\n<p>\u5bf9\u4e8e<code class=\"katex-inline\">m\\times n<\/code>\u9636\u77e9\u9635<code class=\"katex-inline\">\\mathbf A<\/code>\uff0c<code class=\"katex-inline\">\\mathbf A^T\\mathbf A<\/code>\u548c<code class=\"katex-inline\">\\mathbf A\\mathbf A^T<\/code>\u90fd\u662f\u5bf9\u79f0\u65b9\u9635\uff0c<code class=\"katex-inline\">\\mathbf A^T\\mathbf A<\/code>\u662f n \u9636\u5bf9\u79f0\u65b9\u9635\uff0c<code class=\"katex-inline\">\\mathbf A\\mathbf A^T<\/code>\u662f m \u9636\u5bf9\u79f0\u65b9\u9635\uff0c<code class=\"katex-inline\">\\mathbf{R(A^TA)=R(AA^T)=R(A)}<\/code>\uff0c<code class=\"katex-inline\">\\mathbf A^T\\mathbf A<\/code> \u548c <code class=\"katex-inline\">\\mathbf A\\mathbf A^T<\/code> \u4e24\u4e2a\u5bf9\u79f0\u77e9\u9635\u7684\u975e\u96f6\u7279\u5f81\u503c\u76f8\u540c\uff0c\u5269\u4f59\u7684\u96f6\u7279\u5f81\u503c\u4e2a\u6570\u5206\u522b\u4e3a n-r \u4e2a\u548c m-r \u4e2a\u3002<br \/>\n\u5bf9\u79f0\u77e9\u9635\u7684\u7279\u5f81\u5411\u91cf\u77e9\u9635\u662f\u6b63\u4ea4\u77e9\u9635\uff0c\u7279\u5f81\u503c\u5747\u4e3a\u5b9e\u6570\u3002<\/p>\n<p>SVD \u516c\u5f0f\uff1a<code class=\"katex-inline\">\\mathbf A_{m\\times n}=\\mathbf U_{m\\times m}\\sum_{m\\times n}\\mathbf V_{n\\times n}^T<\/code><\/p>\n<pre><code class=\"language-katex\">\\begin{array}{|l|l|l|l|l|}\n\\hline\n\u77e9\u9635 &amp; \u522b\u79f0 &amp; \u7ef4\u5ea6 &amp; \u8ba1\u7b97\u65b9\u5f0f &amp; \u542b\u4e49 \\\\\n\\hline\n\\mathbf U &amp; \\mathbf A \u7684\u5de6\u5947\u5f02\u77e9\u9635 &amp; (m,m) &amp; \u7531\\mathbf A\\mathbf A^T\u7684\u7279\u5f81\u5411\u91cf\u7ec4\u6210\uff0c\u4e14\u7279\u5f81\u5411\u91cf\u4e3a\u5355\u4f4d\u5411\u91cf &amp; \u5305\u542b\u4e86\u6709\u5173\u884c\u7684\u6240\u6709\u4fe1\u606f \\\\\n\\hline\n\\sum &amp; \\mathbf A \u7684\u5947\u5f02\u503c\u77e9\u9635 &amp; (m,n) &amp; \u5bf9\u89d2\u5143\u7d20\u7531 \\mathbf A\\mathbf A^T \u6216 \\mathbf A^T\\mathbf A\u7684\u7279\u5f81\u503c\u7684\u5e73\u65b9\u6839\u7ec4\u6210\uff0c\u4e14\u964d\u5e8f\u6392\u5217 &amp; \u8bb0\u5f55 SVD \u8fc7\u7a0b \\\\\n\\hline\n\\mathbf V &amp; \\mathbf A \u7684\u53f3\u5947\u5f02\u77e9\u9635 &amp; (n,n) &amp; \u7531\\mathbf A^T\\mathbf A\u7684\u7279\u5f81\u5411\u91cf\u7ec4\u6210\uff0c\u4e14\u7279\u5f81\u5411\u91cf\u4e3a\u5355\u4f4d\u5411\u91cf &amp; \u5305\u542b\u4e86\u6709\u5173\u5217\u7684\u6240\u6709\u4fe1\u606f \\\\\n\\hline\n\\end{array}<\/code><\/pre>\n<p>\u6ce8\u610f<code class=\"katex-inline\">\\sum<\/code>\u662f\u7279\u5f81\u503c\u964d\u5e8f\u7ec4\u6210\u7684\uff0c\u5de6\u5947\u5f02\u77e9\u9635\u548c\u53f3\u5947\u5f02\u77e9\u9635\u7684\u7279\u5f81\u5411\u91cf\u6392\u5e8f\u4e5f\u8981\u5bf9\u5e94\u7279\u5f81\u503c\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [1, 5, 7, 6, 1],\n    [2, 1, 10, 4, 4],\n    [3, 6, 7,5, 2]\n])\n\nprint(&#039;\u77e9\u9635&#039;)\nprint(A)\n\nU, S, VT = np.linalg.svd(A)\nprint(&#039;\u5de6\u5947\u5f02\u77e9\u9635&#039;)\nprint(U)\nprint(&#039;\u5947\u5f02\u503c&#039;)\nprint(S)\nprint(&#039;\u5947\u5f02\u503c\u77e9\u9635&#039;)\nSigma = np.zeros(A.shape)\nSigma[:len(S),:len(S)] = np.diag(S)\nprint(Sigma)\nprint(&#039;\u53f3\u5947\u5f02\u77e9\u9635\u7684\u8f6c\u7f6e&#039;)\nprint(VT)\n\nprint(&#039;-----------------------------------------------------------------&#039;)\nprint(&#039;\u91cd\u6784\u77e9\u9635&#039;)\nprint(\n    U.dot(Sigma).dot(VT.T)\n)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1706324902858.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 619px; --smush-placeholder-aspect-ratio: 619\/538;\" \/><\/p>\n<hr \/>\n<p>\u6839\u636e SVD \u516c\u5f0f\u6709<br \/>\n<code class=\"katex-inline\">\\mathbf V^T=(\\mathbf U\\sum)^{-1}A=\\sum^{-1}\\mathbf U^{-1}\\mathbf A\\xlongequal{\u5de6\u5947\u5f02\u77e9\u9635\u9006\u548c\u8f6c\u7f6e\u76f8\u7b49}\\sum^{-1}\\mathbf U^T\\mathbf A<\/code><br \/>\n<code class=\"katex-inline\">\\mathbf V=\\mathbf A^T\\mathbf U(\\sum^{-1})^T=\\mathbf A^T\\mathbf U(\\sum^T)^{-1}\\xlongequal{\u5947\u5f02\u503c\u77e9\u9635\u662f\u5bf9\u79f0\u77e9\u9635\uff0c\u8f6c\u7f6e\u7b49\u4e8e\u539f\u77e9\u9635}\\mathbf A^T\\mathbf U\\sum^{-1}<\/code><br \/>\n\u8fd9\u79cd\u65b9\u5f0f\u6c42\u51fa\u7684\u53f3\u5947\u5f02\u77e9\u9635\u53ef\u80fd\u66f4\u4e3a\u7d27\u51d1\uff0c\u5f53\u5947\u5f02\u503c\u77e9\u9635\u4e2d\u5b58\u5728\u96f6\u5217\uff0c\u90a3\u4e48\u629b\u6389\u96f6\u5217\u518d\u8ba1\u7b97\u51fa\u6765\u7684\u53f3\u5947\u5f02\u77e9\u9635\u7684\u884c\u6570\u5c31\u7b49\u4e8e\u5947\u5f02\u503c\u77e9\u9635\u4e2d\u975e\u96f6\u5217\u7684\u6570\u91cf\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">import numpy as np\n\nA = np.array([\n    [1, 5, 7, 6, 1],\n    [2, 1, 10, 4, 4],\n    [3, 6, 7,5, 2]\n])\n\n# \u7279\u5f81\u503c\u548c\u5de6\u5947\u5f02\u77e9\u9635\nsigmal_val, U = np.linalg.eigh(A.dot(A.T))\n# \u751f\u6210\u7279\u5f81\u503c\u964d\u5e8f\u6392\u5e8f\u7684\u7d22\u5f15\nsigmal_sort_id = np.argsort(sigmal_val)[::-1]\n# \u7279\u5f81\u503c\u964d\u5e8f\u6392\u5e8f\nsigmal_val = np.sort(sigmal_val)[::-1]\n# \u6839\u636e\u751f\u6210\u7684\u6392\u5e8f\u7d22\u5f15\u5bf9\u5de6\u5947\u5f02\u77e9\u9635\u505a\u5bf9\u5e94\u7684\u6392\u5e8f\nU = U[:, sigmal_sort_id]\n\n# \u5947\u5f02\u503c\u77e9\u9635\nsigmal = np.diag(np.sqrt(sigmal_val))\n\n# \u5947\u5f02\u503c\u77e9\u9635\u7684\u9006\u77e9\u9635\nsigmal_inv = np.linalg.inv(sigmal)\n# \u53f3\u5947\u5f02\u77e9\u9635\nV_part = A.T.dot(U).dot(sigmal_inv)\n# \u53f3\u5947\u5f02\u77e9\u9635\u7684\u8f6c\u7f6e\nV_part_T = V_part.T\n# \u6216\nV_part_T = sigmal_inv.dot(U.T).dot(A)\n\nprint(&#039;\u5de6\u5947\u5f02\u77e9\u9635&#039;)\nprint(U)\nprint(&#039;\u5947\u5f02\u503c\u77e9\u9635&#039;)\nprint(sigmal)\nprint(&#039;\u53f3\u5947\u5f02\u77e9\u9635&#039;)\nprint(V_part)\nprint(&#039;\u53f3\u5947\u5f02\u77e9\u9635\u7684\u8f6c\u7f6e&#039;)\nprint(V_part_T)<\/code><\/pre>\n<p>\u53ef\u4ee5\u770b\u5230\u8fd9\u6837\u8ba1\u7b97\u51fa\u7684\u5947\u5f02\u503c\u77e9\u9635\u5c11\u4e86\u4e24\u4e2a\u96f6\u5217\uff0c\u8ba1\u7b97\u51fa\u7684\u53f3\u5947\u5f02\u77e9\u9635\u5219\u5c11\u4e86\u4e24\u884c\u3002<br \/>\n<img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1710681266497.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 508px; --smush-placeholder-aspect-ratio: 508\/360;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"251_SVD_%E7%9F%A9%E9%98%B5%E8%BF%91%E4%BC%BC\"><\/span>2.5.1 SVD \u77e9\u9635\u8fd1\u4f3c<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u524d\u9762 SVD \u5206\u89e3\u7ed3\u679c\u53ef\u4ee5\u770b\u5230\u5947\u5f02\u503c\u662f\u6309\u964d\u5e8f\u6392\u5217\u7684\uff0c\u5373\u8d8a\u662f\u524d\u9762\u7684\u6570\uff0c\u6570\u503c\u8d8a\u5927\uff0c\u5305\u542b\u7684\u77e9\u9635\u7279\u5f81\u5c31\u8d8a\u591a\uff0c\u90a3\u4e48\u53ef\u4ee5\u5728\u4fdd\u7559\u77e9\u9635\u4e3b\u8981\u4fe1\u606f\u7684\u60c5\u51b5\u4e0b\u8003\u8651\u4e22\u6389\u4e00\u4e9b\u540e\u9762\u7684\u6570\u636e\uff0c\u8fd9\u6837\u53ef\u4ee5\u964d\u4f4e\u6570\u636e\u91cf\uff0c\u5f97\u5230\u4e0e\u539f\u77e9\u9635\u8fd1\u4f3c\u7684\u7ed3\u679c\u3002<br \/>\n\u8fd9\u91cc\u5728\u524d\u9762\u793a\u4f8b\u77e9\u9635\u7684\u57fa\u7840\u4e0a\u5c1d\u8bd5\u4e22\u6389\u4e00\u4e9b\u5947\u5f02\u503c\uff0c\u518d\u8ba1\u7b97\u8fd8\u539f\u77e9\u9635\u3002<\/p>\n<p>NumPy<\/p>\n<pre><code class=\"language-py\">for k in range(3, 0, -1):\n    print(&#039;k=&#039;, k)\n    D = U[:,:k].dot(Sigma[:k,:k]).dot(VT[:k,:]) # U \u7684\u524d k \u5217\uff0cSigma \u7684\u524d k \u884c k \u5217\uff0cVT \u7684\u524d k \u884c\n    print(np.round(D, 1)) # \u4fdd\u7559\u4e00\u4f4d\u5c0f\u6570\uff0c\u65b9\u4fbf\u89c2\u5bdf<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1706343658315.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 270px; --smush-placeholder-aspect-ratio: 270\/266;\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"252_%E4%BE%8B_1_%E4%BD%BF%E7%94%A8_SVD_%E5%8E%8B%E7%BC%A9%E5%9B%BE%E5%83%8F\"><\/span>2.5.2 \u4f8b 1 \u4f7f\u7528 SVD \u538b\u7f29\u56fe\u50cf<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u6839\u636e\u524d\u9762 SVD \u77e9\u9635\u8fd1\u4f3c\u7684\u539f\u7406\uff0c\u5c1d\u8bd5\u5bf9\u56fe\u50cf\u4e22\u6389\u4e00\u5b9a\u6bd4\u4f8b\u7684\u5947\u5f02\u503c\uff0c\u6bd4\u8f83\u5bf9\u8fd8\u539f\u7684\u6700\u7ec8\u56fe\u50cf\u7684\u5f71\u54cd\u3002<br \/>\n\u5947\u5f02\u503c\u6bd4\u4f8b\u63a7\u5236\uff0c\u8fd9\u91cc\u6709\u4e24\u79cd\u601d\u8def\uff0c\u4e00\u79cd\u662f\u6309\u5947\u5f02\u503c\u6570\u636e\u548c\u7684\u6bd4\u4f8b\uff0c\u6bd4\u5982\u5947\u5f02\u503c\u6709 5\u30014\u30013\u30012\u30011\uff0c\u603b\u548c\u662f 15\uff0c\u5047\u5982\u4fdd\u7559 60%\uff0c\u4e5f\u5c31\u662f\u53ea\u8981\u524d <code class=\"katex-inline\">15\\times60\\%=9<\/code>\uff0c\u53735\u30014\uff0c\u518d\u540e\u9762\u7684\u5947\u5f02\u503c\u5c31\u4e22\u5f03\u4e86\u3002\u53e6\u5916\u4e00\u79cd\u601d\u8def\u662f\u6309\u5947\u5f02\u503c\u4e2a\u6570\uff0c60% \u5c31\u662f\u6570\u4e2a\u6570\uff0c\u5171 5 \u4e2a\uff0c\u524d 60% \u5c31\u662f\u524d 3 \u4e2a\uff0c\u5373 5\u30014\u30013\u3002\u4e0b\u9762\u7684\u4ee3\u7801\u5c31\u662f\u8fd9\u4e24\u79cd\u601d\u8def\u7684\u5b9e\u73b0\u3002<\/p>\n<pre><code class=\"language-py\">import numpy as np\nimport matplotlib.pyplot as plt\n\ndef get_approx_SVD(data, percent, type):\n    U, s, VT = np.linalg.svd(data)\n    Sigma = np.zeros(np.shape(data), dtype=data.dtype)\n    Sigma[:len(s), :len(s)] = np.diag(s)\n\n    if type == 1:\n        total_sum = int(sum(s) * percent)\n        k = -1\n        current_sum = 0\n        while current_sum &lt;= total_sum:\n            k += 1\n            current_sum += s[k]\n    elif type == 2:\n        k = int(len(s) * percent)\n\n    D = U[:, :k].dot(Sigma[:k, :k].dot(VT[:k, :]))\n    return D.astype(data.dtype)\n\ndef rebuild_img(img, percent, type):\n    R0 = img[:, :, 0] # \u5206\u79bb RGB \u989c\u8272\u901a\u9053\n    G0 = img[:, :, 1]\n    B0 = img[:, :, 2]\n    R = get_approx_SVD(R0, percent, type)\n    G = get_approx_SVD(G0, percent, type)\n    B = get_approx_SVD(B0, percent, type)\n    return np.stack((R, G, B), 2)\n\nimg_path = &#039;test.png&#039; # \u56fe\u7247\u8def\u5f84\nimg = plt.imread(img_path)\n\nimages1 = []\nimages2 = []\ncurrent_percent = 0\nfor i in range(10):\n    current_percent += 0.1\n    images1.append(rebuild_img(img, current_percent, 1))\n    images2.append(rebuild_img(img, current_percent, 2))\n\nrows = 4\ncols = 5\nfig, axis = plt.subplots(rows, cols)\nfig.subplots_adjust(left=0, right=1, bottom=0, top=1)\n\nfor i, ax in enumerate(axis.flat):\n    if i &lt; len(images1):\n        ax.imshow(images1[i])\n    elif i - 10 &lt; len(images2):\n        ax.imshow(images2[i - 10])\n    ax.axis(&#039;off&#039;)<\/code><\/pre>\n<p><img decoding=\"async\" data-src=\"https:\/\/blog.iyatt.com\/wp-content\/uploads\/2024\/01\/image-1710164818233.png\" alt=\"file\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 999px; --smush-placeholder-aspect-ratio: 999\/465;\" \/><\/p>\n<p>\u524d\u9762 10 \u5f20\u56fe\u662f\u5947\u5f02\u503c\u548c\u7684\u767e\u5206\u6bd4\u4ece 10% \u5230 100%\uff0c\u540e\u9762 10 \u5f20\u56fe\u662f\u6309\u5947\u5f02\u503c\u4e2a\u6570\u7684\u767e\u5206\u6bd4\u3002\u5728\u6211\u4f7f\u7528\u7684\u56fe\u7247\u4e2d\uff0c\u6309\u7167\u5947\u5f02\u503c\u548c\u7684\u6bd4\u4f8b\u53ef\u4ee5\u5f88\u597d\u5730\u5448\u73b0\u51fa\u53d8\u5316\uff0c\u800c\u6309\u4e2a\u6570\u5219\u4e0d\u662f\u90a3\u4e48\u660e\u663e\u3002\u8bf4\u660e\u8fd9\u5f20\u56fe\u7247\u8f83\u5927\u7684\u5947\u5f02\u503c\u4e0e\u8f83\u5c0f\u7684\u5947\u5f02\u503c\u5dee\u8ddd\u975e\u5e38\u660e\u663e\uff0c\u4e14\u8f83\u5927\u7684\u5947\u5f02\u503c\u975e\u5e38\u7684\u96c6\u4e2d\uff0c\u5728\u603b\u4e2a\u6570\u4e2d\u5360\u6bd4\u975e\u5e38\u5c0f\uff0c\u6240\u4ee5\u6309\u5947\u5f02\u503c\u4e2a\u6570\u7684\u767e\u5206\u6bd4\u770b\u4e0d\u51fa\u660e\u663e\u53d8\u5316\uff0c\u800c\u6309\u5947\u5f02\u503c\u7684\u548c\u7684\u6bd4\u4f8b\u975e\u5e38\u660e\u663e\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u6309\u7167\u5947\u5f02\u503c\u548c\u7684\u6bd4\u4f8b\u6bd4\u8f83\u9760\u8c31\uff0c\u5947\u5f02\u503c\u4e2a\u6570\u6bd4\u4f8b\u4e0d\u786e\u5b9a\u6027\u5f88\u5927\uff08\u770b\u5947\u5f02\u503c\u5927\u5c0f\u5206\u5e03\uff09\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1 \u77e9\u9635 NumPy \u4e2d array \u548c matrix \u90fd\u53ef\u4ee5\u7528\u4e8e\u50a8\u5b58\u77e9\u9635\uff0c\u540e\u8005\u662f\u524d\u8005\u7684\u5b50\u7c7b\uff0carray \u53ef\u4ee5 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"zakra_page_container_layout":"customizer","zakra_page_sidebar_layout":"customizer","zakra_remove_content_margin":false,"zakra_sidebar":"customizer","zakra_transparent_header":"customizer","zakra_logo":0,"zakra_main_header_style":"default","zakra_menu_item_color":"","zakra_menu_item_hover_color":"","zakra_menu_item_active_color":"","zakra_menu_active_style":"","zakra_page_header":true,"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[1,606,592,612],"tags":[949,914,909,946,948,925,950,924,951,947,945,944],"class_list":["post-13044","post","type-post","status-publish","format-standard","hentry","category-all","category-jupyter","category-python","category-612","tag-jupyter","tag-numpy","tag-python","tag-946","tag-948","tag-925","tag-950","tag-924","tag-951","tag-947","tag-945","tag-944"],"modified_by":"IYATT-yx","_links":{"self":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts\/13044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13044"}],"version-history":[{"count":4,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts\/13044\/revisions"}],"predecessor-version":[{"id":21949,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=\/wp\/v2\/posts\/13044\/revisions\/21949"}],"wp:attachment":[{"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.iyatt.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}