{"id":20071,"date":"2026-01-16T15:42:38","date_gmt":"2026-01-16T07:42:38","guid":{"rendered":"https:\/\/92it.top\/?p=20071"},"modified":"2026-01-16T15:42:38","modified_gmt":"2026-01-16T07:42:38","slug":"python-%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e5%ba%93","status":"publish","type":"post","link":"https:\/\/92it.top\/?p=20071","title":{"rendered":"Python \u673a\u5668\u5b66\u4e60\u5e93"},"content":{"rendered":"\n<p><strong>\u524d\u8a00\u200b\ud83d\udd16<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u672c\u7ae0\u5c06\u4e3a\u4f60\u8be6\u7ec6\u4ecb\u7ecd\u673a\u5668\u5b66\u4e60\u4e2d\u6700\u6838\u5fc3\u7684\u56db\u4e2a Python \u5e93\uff1aNumPy\u3001Pandas\u3001Matplotlib \u548c Scikit-learn\u3002<\/p>\n\n\n\n<p><strong>\u673a\u5668\u5b66\u4e60\u5e93\u5c31\u50cf\u4e00\u5957\u4e13\u4e1a\u7684\u5de5\u5177\u7bb1<\/strong>\uff0c\u6bcf\u4e2a\u5e93\u90fd\u6709\u7279\u5b9a\u7684\u7528\u9014\uff0c\u914d\u5408\u4f7f\u7528\u53ef\u4ee5\u5b8c\u6210\u590d\u6742\u7684\u673a\u5668\u5b66\u4e60\u4efb\u52a1\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"135\" src=\"https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-1024x135.png\" alt=\"\" class=\"wp-image-20072\" style=\"width:656px;height:auto\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-1024x135.png 1024w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-300x39.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-768x101.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-1536x202.png 1536w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-830x109.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-230x30.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-350x46.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52-480x63.png 480w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-52.png 1665w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>\u56db\u5927\u6838\u5fc3\u5e93\u7684\u89d2\u8272<\/p>\n\n\n\n<ul>\n<li><strong><a href=\"https:\/\/www.runoob.com\/numpy\/numpy-tutorial.html\" target=\"_blank\" rel=\"noreferrer noopener\">Numpy<\/a><\/strong>\uff1a\u6570\u503c\u8ba1\u7b97\u7684\u57fa\u7840\uff0c\u63d0\u4f9b\u9ad8\u6548\u7684\u6570\u7ec4\u64cd\u4f5c<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.runoob.com\/pandas\/pandas-tutorial.html\" target=\"_blank\" rel=\"noreferrer noopener\">Pandas<\/a><\/strong>\uff1a\u6570\u636e\u5904\u7406\u7684\u5229\u5668\uff0c\u63d0\u4f9b\u6570\u636e\u7ed3\u6784\u548c\u5206\u6790\u5de5\u5177<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.runoob.com\/matplotlib\/matplotlib-tutorial.html\" target=\"_blank\" rel=\"noreferrer noopener\">Matplotlib<\/a><\/strong>\uff1a\u6570\u636e\u53ef\u89c6\u5316\u7684\u753b\u7b14\uff0c\u521b\u5efa\u5404\u79cd\u56fe\u8868<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.runoob.com\/sklearn\/sklearn-tutorial.html\" target=\"_blank\" rel=\"noreferrer noopener\">scikit-learn<\/a><\/strong>\uff1a\u673a\u5668\u5b66\u4e60\u7684\u745e\u58eb\u519b\u5200\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684 ML \u5de5\u5177\u94fe<\/li>\n<\/ul>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>NumPy\uff1a\u6570\u503c\u8ba1\u7b97\u7684\u57fa\u7840\ud83d\udd16<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u4ec0\u4e48\u662f NumPy\uff1f<\/p>\n\n\n\n<p><strong>NumPy \u5c31\u50cf\u662f\u6570\u5b66\u8ba1\u7b97\u7684\u8ba1\u7b97\u5668<\/strong>\uff0c\u4f46\u529f\u80fd\u5f3a\u5927\u65e0\u6570\u500d\u3002\u5b83\u662f Python \u79d1\u5b66\u8ba1\u7b97\u7684\u57fa\u7840\u5e93\uff0c\u63d0\u4f9b\u4e86\u9ad8\u6548\u7684\u591a\u7ef4\u6570\u7ec4\u5bf9\u8c61\u3002<\/p>\n\n\n\n<p>NumPy \u7684\u6838\u5fc3\u6982\u5ff5<\/p>\n\n\n\n<p><strong>\ud83d\udd391. \u6570\u7ec4\uff08Array\uff09<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># NumPy \u6570\u7ec4\u57fa\u7840\u64cd\u4f5c\nimport numpy as np\n\n# \u521b\u5efa\u6570\u7ec4\u7684\u4e0d\u540c\u65b9\u5f0f\nprint(\"=== NumPy \u6570\u7ec4\u521b\u5efa ===\")\n\n# \u4ece\u5217\u8868\u521b\u5efa\narr1 = np.array([1, 2, 3, 4, 5])\nprint(f\"\u4ece\u5217\u8868\u521b\u5efa\uff1a{arr1}\")\n\n# \u521b\u5efa\u7b49\u5dee\u6570\u7ec4\narr2 = np.arange(0, 10, 2)  # 0\u523010\uff0c\u6b65\u957f\u4e3a2\nprint(f\"\u7b49\u5dee\u6570\u7ec4\uff1a{arr2}\")\n\n# \u521b\u5efa\u7b49\u95f4\u9694\u6570\u7ec4\narr3 = np.linspace(0, 1, 5)  # 0\u52301\uff0c5\u4e2a\u70b9\nprint(f\"\u7b49\u95f4\u9694\u6570\u7ec4\uff1a{arr3}\")\n\n# \u521b\u5efa\u7279\u6b8a\u6570\u7ec4\nzeros_arr = np.zeros((2, 3))  # 2\u884c3\u5217\u7684\u96f6\u6570\u7ec4\nones_arr = np.ones((2, 3))    # 2\u884c3\u5217\u7684\u4e00\u6570\u7ec4\nidentity_arr = np.eye(3)      # 3x3\u5355\u4f4d\u77e9\u9635\n\nprint(f\"\u96f6\u6570\u7ec4\uff1a\\n{zeros_arr}\")\nprint(f\"\u4e00\u6570\u7ec4\uff1a\\n{ones_arr}\")\nprint(f\"\u5355\u4f4d\u77e9\u9635\uff1a\\n{identity_arr}\")<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">=== NumPy \u6570\u7ec4\u521b\u5efa ===\n\u4ece\u5217\u8868\u521b\u5efa\uff1a[1 2 3 4 5]\n\u7b49\u5dee\u6570\u7ec4\uff1a[0 2 4 6 8]\n\u7b49\u95f4\u9694\u6570\u7ec4\uff1a[0.   0.25 0.5  0.75 1.  ]\n\u96f6\u6570\u7ec4\uff1a\n[[0. 0. 0.]\n [0. 0. 0.]]\n\u4e00\u6570\u7ec4\uff1a\n[[1. 1. 1.]\n [1. 1. 1.]]\n\u5355\u4f4d\u77e9\u9635\uff1a\n[[1. 0. 0.]\n [0. 1. 0.]\n [0. 0. 1.]]<\/pre>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>\ud83d\udd392. \u6570\u7ec4\u64cd\u4f5c<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u6570\u7ec4\u7684\u57fa\u672c\u64cd\u4f5c\nprint(\"\\n=== \u6570\u7ec4\u57fa\u672c\u64cd\u4f5c ===\")\n\n# \u6570\u7ec4\u5c5e\u6027\narr = np.array([[1, 2, 3], [4, 5, 6]])\nprint(f\"\u6570\u7ec4\uff1a\\n{arr}\")\nprint(f\"\u5f62\u72b6\uff1a{arr.shape}\")\nprint(f\"\u7ef4\u5ea6\uff1a{arr.ndim}\")\nprint(f\"\u5143\u7d20\u4e2a\u6570\uff1a{arr.size}\")\nprint(f\"\u6570\u636e\u7c7b\u578b\uff1a{arr.dtype}\")\n\n# \u6570\u7ec4\u7d22\u5f15\u548c\u5207\u7247\nprint(f\"\u7b2c\u4e00\u884c\uff1a{arr[0]}\")\nprint(f\"\u7b2c\u4e00\u5217\uff1a{arr[:, 0]}\")\nprint(f\"\u5143\u7d20[1,2]\uff1a{arr[1, 2]}\")\n\n# \u6570\u7ec4\u8fd0\u7b97\narr1 = np.array([1, 2, 3])\narr2 = np.array([4, 5, 6])\n\nprint(f\"\u52a0\u6cd5\uff1a{arr1 + arr2}\")\nprint(f\"\u4e58\u6cd5\uff1a{arr1 * arr2}\")\nprint(f\"\u70b9\u79ef\uff1a{np.dot(arr1, arr2)}\")\n\n# \u7edf\u8ba1\u51fd\u6570\ndata = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])\nprint(f\"\u5747\u503c\uff1a{np.mean(data)}\")\nprint(f\"\u6807\u51c6\u5dee\uff1a{np.std(data)}\")\nprint(f\"\u6700\u5927\u503c\uff1a{np.max(data)}\")\nprint(f\"\u6700\u5c0f\u503c\uff1a{np.min(data)}\")\nprint(f\"\u4e2d\u4f4d\u6570\uff1a{np.median(data)}\")<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\n=== \u6570\u7ec4\u57fa\u672c\u64cd\u4f5c ===\n\u6570\u7ec4\uff1a\n[[1 2 3]\n [4 5 6]]\n\u5f62\u72b6\uff1a(2, 3)\n\u7ef4\u5ea6\uff1a2\n\u5143\u7d20\u4e2a\u6570\uff1a6\n\u6570\u636e\u7c7b\u578b\uff1aint64\n\u7b2c\u4e00\u884c\uff1a[1 2 3]\n\u7b2c\u4e00\u5217\uff1a[1 4]\n\u5143\u7d20[1,2]\uff1a6\n\u52a0\u6cd5\uff1a[5 7 9]\n\u4e58\u6cd5\uff1a[ 4 10 18]\n\u70b9\u79ef\uff1a32\n\u5747\u503c\uff1a5.5\n\u6807\u51c6\u5dee\uff1a2.8722813232690143\n\u6700\u5927\u503c\uff1a10\n\u6700\u5c0f\u503c\uff1a1\n\u4e2d\u4f4d\u6570\uff1a5.5<\/pre>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>\ud83d\udd393.NumPy \u5b9e\u9645\u5e94\u7528\u793a\u4f8b<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># NumPy \u5b9e\u9645\u5e94\u7528\uff1a\u7b80\u5355\u7ebf\u6027\u56de\u5f52\ndef numpy_linear_regression():\n    \"\"\"\u4f7f\u7528 NumPy \u5b9e\u73b0\u7b80\u5355\u7ebf\u6027\u56de\u5f52\"\"\"\n    \n    # \u751f\u6210\u793a\u4f8b\u6570\u636e\n    np.random.seed(42)\n    X = 2 * np.random.rand(100, 1)  # \u7279\u5f81\n    y = 4 + 3 * X + np.random.randn(100, 1)  # \u6807\u7b7e + \u566a\u58f0\n    \n    # \u6dfb\u52a0 x0 = 1 \u5230 X\n    X_b = np.c_[np.ones((100, 1)), X]  # \u6dfb\u52a0\u504f\u7f6e\u9879\n    \n    # \u4f7f\u7528\u6b63\u89c4\u65b9\u7a0b\u6c42\u89e3\uff1a\u03b8 = (X^T * X)^(-1) * X^T * y\n    theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)\n    \n    print(\"=== NumPy \u7ebf\u6027\u56de\u5f52\u793a\u4f8b ===\")\n    print(f\"\u5b66\u4e60\u5230\u7684\u53c2\u6570\uff1a\u622a\u8ddd={theta_best[0][0]:.2f}, \u659c\u7387={theta_best[1][0]:.2f}\")\n    \n    # \u9884\u6d4b\n    X_new = np.array([[0], [2]])\n    X_new_b = np.c_[np.ones((2, 1)), X_new]\n    y_predict = X_new_b.dot(theta_best)\n    \n    print(f\"\u9884\u6d4b\u7ed3\u679c\uff1aX=0 \u65f6 y={y_predict[0][0]:.2f}, X=2 \u65f6 y={y_predict[1][0]:.2f}\")\n    \n    return theta_best, X, y\n\n# \u8fd0\u884c\u793a\u4f8b\ntheta, X, y = numpy_linear_regression()<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">=== NumPy \u7ebf\u6027\u56de\u5f52\u793a\u4f8b ===\n\u5b66\u4e60\u5230\u7684\u53c2\u6570\uff1a\u622a\u8ddd=4.22, \u659c\u7387=2.77\n\u9884\u6d4b\u7ed3\u679c\uff1aX=0 \u65f6 y=4.22, X=2 \u65f6 y=9.76<\/pre>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>Pandas\uff1a\u6570\u636e\u5904\u7406\u7684\u5229\u5668\ud83d\udd16<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u4ec0\u4e48\u662f Pandas\uff1f<\/p>\n\n\n\n<p>Pandas \u5c31\u50cf\u662f\u6570\u636e\u5904\u7406\u7684\u745e\u58eb\u519b\u5200\uff0c\u63d0\u4f9b\u4e86\u5f3a\u5927\u7684\u6570\u636e\u7ed3\u6784\u548c\u6570\u636e\u5206\u6790\u5de5\u5177\uff0c\u7279\u522b\u9002\u5408\u5904\u7406\u8868\u683c\u578b\u6570\u636e\u3002<\/p>\n\n\n\n<p>Pandas \u7684\u6838\u5fc3\u6570\u636e\u7ed3\u6784<\/p>\n\n\n\n<p><strong>\ud83d\udd391. Series\uff08\u4e00\u7ef4\u6570\u636e\uff09<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Pandas Series \u57fa\u7840\u64cd\u4f5c\nimport pandas as pd\n\nprint(\"=== Pandas Series ===\")\n\n# \u4ece\u5217\u8868\u521b\u5efa Series\ns1 = pd.Series([1, 2, 3, 4, 5])\nprint(f\"\u4ece\u5217\u8868\u521b\u5efa\uff1a\\n{s1}\")\n\n# \u5e26\u7d22\u5f15\u7684 Series\ns2 = pd.Series([10, 20, 30], index=['a', 'b', 'c'])\nprint(f\"\\n\u5e26\u7d22\u5f15\u7684 Series\uff1a\\n{s2}\")\n\n# \u4ece\u5b57\u5178\u521b\u5efa Series\ns3 = pd.Series({'\u6570\u5b66': 90, '\u82f1\u8bed': 85, '\u7269\u7406': 88})\nprint(f\"\\n\u4ece\u5b57\u5178\u521b\u5efa\uff1a\\n{s3}\")\n\n# Series \u64cd\u4f5c\nprint(f\"\\n\u8bbf\u95ee\u5143\u7d20\uff1as2['b'] = {s2['b']}\")\nprint(f\"\u5207\u7247\uff1as2[0:2] =\\n{s2[0:2]}\")\nprint(f\"\u7edf\u8ba1\u4fe1\u606f\uff1a\\n{s2.describe()}\")<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">=== Pandas Series ===\n\u4ece\u5217\u8868\u521b\u5efa\uff1a\n0    1\n1    2\n2    3\n3    4\n4    5\ndtype: int64\n\n\u5e26\u7d22\u5f15\u7684 Series\uff1a\na    10\nb    20\nc    30\ndtype: int64\n\n\u4ece\u5b57\u5178\u521b\u5efa\uff1a\n\u6570\u5b66    90\n\u82f1\u8bed    85\n\u7269\u7406    88\ndtype: int64\n\n\u8bbf\u95ee\u5143\u7d20\uff1as2['b'] = 20\n\u5207\u7247\uff1as2[0:2] =\na    10\nb    20\ndtype: int64\n\u7edf\u8ba1\u4fe1\u606f\uff1a\ncount     3.0\nmean     20.0\nstd      10.0\nmin      10.0\n25%      15.0\n50%      20.0\n75%      25.0\nmax      30.0\ndtype: float64<\/pre>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>\ud83d\udd392. DataFrame\uff08\u4e8c\u7ef4\u6570\u636e\uff09<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Pandas DataFrame \u57fa\u7840\u64cd\u4f5c\nprint(\"\\n=== Pandas DataFrame ===\")\n\n# \u521b\u5efa DataFrame\ndata = {\n    '\u59d3\u540d': ['\u5f20\u4e09', '\u674e\u56db', '\u738b\u4e94', '\u8d75\u516d'],\n    '\u5e74\u9f84': [25, 30, 35, 28],\n    '\u57ce\u5e02': ['\u5317\u4eac', '\u4e0a\u6d77', '\u5e7f\u5dde', '\u6df1\u5733'],\n    '\u85aa\u8d44': [15000, 20000, 18000, 22000]\n}\n\ndf = pd.DataFrame(data)\nprint(\"\u539f\u59cb DataFrame\uff1a\")\nprint(df)\n\n# DataFrame \u57fa\u672c\u64cd\u4f5c\nprint(f\"\\nDataFrame \u5f62\u72b6\uff1a{df.shape}\")\nprint(f\"\\n\u5217\u540d\uff1a{list(df.columns)}\")\nprint(f\"\\n\u6570\u636e\u7c7b\u578b\uff1a\\n{df.dtypes}\")\n\n# \u9009\u62e9\u6570\u636e\nprint(f\"\\n\u9009\u62e9'\u59d3\u540d'\u5217\uff1a\\n{df['\u59d3\u540d']}\")\nprint(f\"\\n\u9009\u62e9\u524d\u4e24\u884c\uff1a\\n{df.head(2)}\")\nprint(f\"\\n\u9009\u62e9\u5e74\u9f84\u5927\u4e8e28\u7684\u884c\uff1a\\n{df[df['\u5e74\u9f84'] > 28]}\")\n\n# \u7edf\u8ba1\u4fe1\u606f\nprint(f\"\\n\u6570\u503c\u5217\u7684\u7edf\u8ba1\u4fe1\u606f\uff1a\\n{df.describe()}\")\n\n# \u6dfb\u52a0\u65b0\u5217\ndf['\u5e74\u85aa'] = df['\u85aa\u8d44'] * 12\nprint(f\"\\n\u6dfb\u52a0\u5e74\u85aa\u5217\u540e\uff1a\\n{df}\")<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">=== Pandas DataFrame ===\n\u539f\u59cb DataFrame\uff1a\n   \u59d3\u540d  \u5e74\u9f84  \u57ce\u5e02     \u85aa\u8d44\n0  \u5f20\u4e09  25  \u5317\u4eac  15000\n1  \u674e\u56db  30  \u4e0a\u6d77  20000\n2  \u738b\u4e94  35  \u5e7f\u5dde  18000\n3  \u8d75\u516d  28  \u6df1\u5733  22000\n\nDataFrame \u5f62\u72b6\uff1a(4, 4)\n\n\u5217\u540d\uff1a['\u59d3\u540d', '\u5e74\u9f84', '\u57ce\u5e02', '\u85aa\u8d44']\n\n\u6570\u636e\u7c7b\u578b\uff1a\n\u59d3\u540d    object\n\u5e74\u9f84     int64\n\u57ce\u5e02    object\n\u85aa\u8d44     int64\ndtype: object\n\n\u9009\u62e9'\u59d3\u540d'\u5217\uff1a\n0    \u5f20\u4e09\n1    \u674e\u56db\n2    \u738b\u4e94\n3    \u8d75\u516d\nName: \u59d3\u540d, dtype: object\n\n\u9009\u62e9\u524d\u4e24\u884c\uff1a\n   \u59d3\u540d  \u5e74\u9f84  \u57ce\u5e02     \u85aa\u8d44\n0  \u5f20\u4e09  25  \u5317\u4eac  15000\n1  \u674e\u56db  30  \u4e0a\u6d77  20000\n\n\u9009\u62e9\u5e74\u9f84\u5927\u4e8e28\u7684\u884c\uff1a\n   \u59d3\u540d  \u5e74\u9f84  \u57ce\u5e02     \u85aa\u8d44\n1  \u674e\u56db  30  \u4e0a\u6d77  20000\n2  \u738b\u4e94  35  \u5e7f\u5dde  18000\n\n\u6570\u503c\u5217\u7684\u7edf\u8ba1\u4fe1\u606f\uff1a\n              \u5e74\u9f84            \u85aa\u8d44\ncount   4.000000      4.000000\nmean   29.500000  18750.000000\nstd     4.203173   2986.078811\nmin    25.000000  15000.000000\n25%    27.250000  17250.000000\n50%    29.000000  19000.000000\n75%    31.250000  20500.000000\nmax    35.000000  22000.000000\n\n\u6dfb\u52a0\u5e74\u85aa\u5217\u540e\uff1a\n   \u59d3\u540d  \u5e74\u9f84  \u57ce\u5e02     \u85aa\u8d44      \u5e74\u85aa\n0  \u5f20\u4e09  25  \u5317\u4eac  15000  180000\n1  \u674e\u56db  30  \u4e0a\u6d77  20000  240000\n2  \u738b\u4e94  35  \u5e7f\u5dde  18000  216000\n3  \u8d75\u516d  28  \u6df1\u5733  22000  264000<\/pre>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>\ud83d\udd393. Pandas \u6570\u636e\u5904\u7406\u793a\u4f8b<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Pandas \u6570\u636e\u5904\u7406\u5b8c\u6574\u793a\u4f8b\ndef pandas_data_processing():\n    \"\"\"\u6f14\u793a Pandas \u6570\u636e\u5904\u7406\u7684\u5b8c\u6574\u6d41\u7a0b\"\"\"\n    \n    print(\"=== Pandas \u6570\u636e\u5904\u7406\u793a\u4f8b ===\")\n    \n    # 1. \u521b\u5efa\u793a\u4f8b\u6570\u636e\n    np.random.seed(42)\n    n_samples = 1000\n    \n    data = {\n        '\u5b66\u751fID': range(1, n_samples + 1),\n        '\u59d3\u540d': [f'\u5b66\u751f{i}' for i in range(1, n_samples + 1)],\n        '\u5e74\u9f84': np.random.randint(18, 25, n_samples),\n        '\u6027\u522b': np.random.choice(['\u7537', '\u5973'], n_samples),\n        '\u6570\u5b66\u6210\u7ee9': np.random.normal(75, 15, n_samples),\n        '\u82f1\u8bed\u6210\u7ee9': np.random.normal(80, 12, n_samples),\n        '\u7269\u7406\u6210\u7ee9': np.random.normal(72, 18, n_samples),\n        '\u73ed\u7ea7': np.random.choice(['\u4e00\u73ed', '\u4e8c\u73ed', '\u4e09\u73ed'], n_samples)\n    }\n    \n    df = pd.DataFrame(data)\n    \n    # 2. \u6570\u636e\u6e05\u6d17\n    print(\"\u539f\u59cb\u6570\u636e\u5f62\u72b6\uff1a\", df.shape)\n    \n    # \u5904\u7406\u5f02\u5e38\u503c\uff08\u6210\u7ee9\u5e94\u5728 0-100 \u4e4b\u95f4\uff09\n    score_columns = ['\u6570\u5b66\u6210\u7ee9', '\u82f1\u8bed\u6210\u7ee9', '\u7269\u7406\u6210\u7ee9']\n    for col in score_columns:\n        df[col] = df[col].clip(0, 100)\n    \n    # 3. \u7279\u5f81\u5de5\u7a0b\n    # \u8ba1\u7b97\u603b\u5206\u548c\u5e73\u5747\u5206\n    df['\u603b\u5206'] = df[score_columns].sum(axis=1)\n    df['\u5e73\u5747\u5206'] = df[score_columns].mean(axis=1)\n    \n    # \u6dfb\u52a0\u7b49\u7ea7\n    def get_grade(score):\n        if score >= 90:\n            return 'A'\n        elif score >= 80:\n            return 'B'\n        elif score >= 70:\n            return 'C'\n        elif score >= 60:\n            return 'D'\n        else:\n            return 'F'\n    \n    df['\u7b49\u7ea7'] = df['\u5e73\u5747\u5206'].apply(get_grade)\n    \n    # 4. \u6570\u636e\u5206\u6790\n    print(\"\\n=== \u6570\u636e\u5206\u6790\u7ed3\u679c ===\")\n    \n    # \u57fa\u672c\u7edf\u8ba1\n    print(\"\u5404\u79d1\u5e73\u5747\u5206\uff1a\")\n    print(df[score_columns].mean())\n    \n    # \u6309\u73ed\u7ea7\u5206\u6790\n    print(\"\\n\u5404\u73ed\u7ea7\u5e73\u5747\u5206\uff1a\")\n    class_avg = df.groupby('\u73ed\u7ea7')['\u5e73\u5747\u5206'].mean()\n    print(class_avg)\n    \n    # \u6309\u6027\u522b\u5206\u6790\n    print(\"\\n\u6027\u522b\u5206\u5e03\uff1a\")\n    gender_count = df['\u6027\u522b'].value_counts()\n    print(gender_count)\n    \n    # \u7b49\u7ea7\u5206\u5e03\n    print(\"\\n\u7b49\u7ea7\u5206\u5e03\uff1a\")\n    grade_dist = df['\u7b49\u7ea7'].value_counts().sort_index()\n    print(grade_dist)\n    \n    # 5. \u6570\u636e\u7b5b\u9009\n    print(\"\\n=== \u7279\u5b9a\u6570\u636e\u7b5b\u9009 ===\")\n    \n    # \u4f18\u79c0\u5b66\u751f\uff08\u5e73\u5747\u5206 > 85\uff09\n    excellent_students = df[df['\u5e73\u5747\u5206'] > 85].head(5)\n    print(\"\u4f18\u79c0\u5b66\u751f\uff08\u524d5\u540d\uff09\uff1a\")\n    print(excellent_students[['\u59d3\u540d', '\u5e73\u5747\u5206', '\u7b49\u7ea7']])\n    \n    # \u5404\u73ed\u7ea7\u6700\u9ad8\u5206\u5b66\u751f\n    print(\"\\n\u5404\u73ed\u7ea7\u6700\u9ad8\u5206\u5b66\u751f\uff1a\")\n    top_students = df.loc[df.groupby('\u73ed\u7ea7')['\u5e73\u5747\u5206'].idxmax()]\n    print(top_students[['\u73ed\u7ea7', '\u59d3\u540d', '\u5e73\u5747\u5206']])\n    \n    return df\n\n# \u8fd0\u884c\u793a\u4f8b\nstudent_df = pandas_data_processing()<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">=== Pandas \u6570\u636e\u5904\u7406\u793a\u4f8b ===\n\u539f\u59cb\u6570\u636e\u5f62\u72b6\uff1a (1000, 8)\n\n=== \u6570\u636e\u5206\u6790\u7ed3\u679c ===\n\u5404\u79d1\u5e73\u5747\u5206\uff1a\n\u6570\u5b66\u6210\u7ee9    74.748710\n\u82f1\u8bed\u6210\u7ee9    79.590154\n\u7269\u7406\u6210\u7ee9    71.227226\ndtype: float64\n\n\u5404\u73ed\u7ea7\u5e73\u5747\u5206\uff1a\n\u73ed\u7ea7\n\u4e00\u73ed    75.409226\n\u4e09\u73ed    74.966874\n\u4e8c\u73ed    75.174297\nName: \u5e73\u5747\u5206, dtype: float64\n\n\u6027\u522b\u5206\u5e03\uff1a\n\u6027\u522b\n\u7537    519\n\u5973    481\nName: count, dtype: int64\n\n\u7b49\u7ea7\u5206\u5e03\uff1a\n\u7b49\u7ea7\nA     38\nB    239\nC    464\nD    231\nF     28\nName: count, dtype: int64\n\n=== \u7279\u5b9a\u6570\u636e\u7b5b\u9009 ===\n\u4f18\u79c0\u5b66\u751f\uff08\u524d5\u540d\uff09\uff1a\n      \u59d3\u540d        \u5e73\u5747\u5206 \u7b49\u7ea7\n9   \u5b66\u751f10  88.979295  B\n14  \u5b66\u751f15  86.268246  B\n38  \u5b66\u751f39  91.532778  A\n47  \u5b66\u751f48  88.630826  B\n61  \u5b66\u751f62  85.492112  B\n\n\u5404\u73ed\u7ea7\u6700\u9ad8\u5206\u5b66\u751f\uff1a\n     \u73ed\u7ea7     \u59d3\u540d         \u5e73\u5747\u5206\n254  \u4e00\u73ed  \u5b66\u751f255   94.759719\n462  \u4e09\u73ed  \u5b66\u751f463  100.000000\n581  \u4e8c\u73ed  \u5b66\u751f582   95.907076<\/pre>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>Matplotlib\uff1a\u6570\u636e\u53ef\u89c6\u5316\u7684\u753b\u7b14\ud83d\udd16<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u4ec0\u4e48\u662f Matplotlib\uff1f<\/p>\n\n\n\n<p>Matplotlib \u5c31\u50cf\u662f\u6570\u636e\u827a\u672f\u5bb6\u7684\u753b\u7b14\uff0c\u53ef\u4ee5\u5c06\u67af\u71e5\u7684\u6570\u636e\u8f6c\u6362\u6210\u76f4\u89c2\u7684\u56fe\u8868\uff0c\u5e2e\u52a9\u6211\u4eec\u7406\u89e3\u6570\u636e\u4e2d\u7684\u6a21\u5f0f\u548c\u5173\u7cfb\u3002<\/p>\n\n\n\n<p><strong>\ud83d\udd39Matplotlib \u57fa\u7840\u56fe\u8868<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Matplotlib \u57fa\u7840\u56fe\u8868\u793a\u4f8b\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# \u8bbe\u7f6e\u4e2d\u6587\u5b57\u4f53\uff08\u9632\u6b62\u4e2d\u6587\u663e\u793a\u4e3a\u65b9\u6846\uff09\nplt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS']\nplt.rcParams['axes.unicode_minus'] = False\n\ndef matplotlib_basic_charts():\n    \"\"\"\u6f14\u793a Matplotlib \u57fa\u7840\u56fe\u8868\"\"\"\n    \n    print(\"=== Matplotlib \u57fa\u7840\u56fe\u8868\u793a\u4f8b ===\")\n    \n    # 1. \u6298\u7ebf\u56fe\n    plt.figure(figsize=(12, 8))\n    \n    plt.subplot(2, 3, 1)\n    x = np.linspace(0, 10, 100)\n    y1 = np.sin(x)\n    y2 = np.cos(x)\n    plt.plot(x, y1, label='sin(x)')\n    plt.plot(x, y2, label='cos(x)')\n    plt.title('\u4e09\u89d2\u51fd\u6570')\n    plt.xlabel('x')\n    plt.ylabel('y')\n    plt.legend()\n    plt.grid(True)\n    \n    # 2. \u6563\u70b9\u56fe\n    plt.subplot(2, 3, 2)\n    np.random.seed(42)\n    x = np.random.randn(100)\n    y = 2 * x + np.random.randn(100) * 0.5\n    plt.scatter(x, y, alpha=0.6, c='blue')\n    plt.title('\u6563\u70b9\u56fe')\n    plt.xlabel('X')\n    plt.ylabel('Y')\n    \n    # 3. \u67f1\u72b6\u56fe\n    plt.subplot(2, 3, 3)\n    categories = ['A', 'B', 'C', 'D', 'E']\n    values = [23, 45, 56, 78, 32]\n    plt.bar(categories, values, color=['red', 'green', 'blue', 'orange', 'purple'])\n    plt.title('\u67f1\u72b6\u56fe')\n    plt.xlabel('\u7c7b\u522b')\n    plt.ylabel('\u6570\u503c')\n    \n    # 4. \u76f4\u65b9\u56fe\n    plt.subplot(2, 3, 4)\n    data = np.random.normal(100, 15, 1000)\n    plt.hist(data, bins=30, alpha=0.7, color='skyblue', edgecolor='black')\n    plt.title('\u76f4\u65b9\u56fe')\n    plt.xlabel('\u6570\u503c')\n    plt.ylabel('\u9891\u6570')\n    \n    # 5. \u997c\u56fe\n    plt.subplot(2, 3, 5)\n    sizes = [30, 25, 20, 15, 10]\n    labels = ['A', 'B', 'C', 'D', 'E']\n    colors = ['gold', 'lightcoral', 'lightskyblue', 'lightgreen', 'plum']\n    plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)\n    plt.title('\u997c\u56fe')\n    \n    # 6. \u7bb1\u7ebf\u56fe\n    plt.subplot(2, 3, 6)\n    data1 = np.random.normal(0, 1, 100)\n    data2 = np.random.normal(2, 1, 100)\n    data3 = np.random.normal(-2, 1, 100)\n    plt.boxplot([data1, data2, data3], labels=['\u7ec41', '\u7ec42', '\u7ec43'])\n    plt.title('\u7bb1\u7ebf\u56fe')\n    plt.ylabel('\u6570\u503c')\n    \n    plt.tight_layout()\n    plt.show()\n    \n    print(\"\u56fe\u8868\u5df2\u663e\u793a\uff01\")\n\n# \u8fd0\u884c\u793a\u4f8b\nmatplotlib_basic_charts()<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"686\" src=\"https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-1024x686.png\" alt=\"\" class=\"wp-image-20075\" style=\"width:638px;height:auto\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-1024x686.png 1024w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-300x201.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-768x514.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-1536x1029.png 1536w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-830x556.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-230x154.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-350x234.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54-480x321.png 480w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-54.png 1644w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>\ud83d\udd39\u9ad8\u7ea7\u53ef\u89c6\u5316\u793a\u4f8b<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u9ad8\u7ea7\u53ef\u89c6\u5316\u793a\u4f8b\ndef advanced_visualization():\n    \"\"\"\u6f14\u793a\u9ad8\u7ea7\u53ef\u89c6\u5316\u6280\u5de7\"\"\"\n    \n    print(\"=== \u9ad8\u7ea7\u53ef\u89c6\u5316\u793a\u4f8b ===\")\n    \n    # \u521b\u5efa\u66f4\u590d\u6742\u7684\u6570\u636e\n    np.random.seed(42)\n    n_points = 200\n    \n    # \u751f\u6210\u76f8\u5173\u6570\u636e\n    x = np.random.randn(n_points)\n    y = 2 * x + np.random.randn(n_points) * 0.5\n    colors = np.random.rand(n_points)\n    sizes = 1000 * np.random.rand(n_points)\n    \n    # 1. \u6c14\u6ce1\u56fe\n    plt.figure(figsize=(15, 5))\n    \n    plt.subplot(1, 3, 1)\n    scatter = plt.scatter(x, y, c=colors, s=sizes, alpha=0.6, cmap='viridis')\n    plt.colorbar(scatter, label='\u989c\u8272\u503c')\n    plt.title('\u6c14\u6ce1\u56fe')\n    plt.xlabel('X')\n    plt.ylabel('Y')\n    \n    # 2. \u70ed\u529b\u56fe\n    plt.subplot(1, 3, 2)\n    data = np.random.randn(10, 10)\n    im = plt.imshow(data, cmap='coolwarm', aspect='auto')\n    plt.colorbar(im, label='\u6570\u503c')\n    plt.title('\u70ed\u529b\u56fe')\n    \n    # 3. \u5b50\u56fe\u7ec4\u5408\n    plt.subplot(1, 3, 3)\n    \n    # \u521b\u5efa\u5b50\u56fe\n    gs = plt.GridSpec(2, 2, subplot_kw={'projection': 'polar'})\n    \n    ax1 = plt.subplot(gs[0, 0])\n    theta = np.linspace(0, 2*np.pi, 100)\n    r = np.sin(3*theta)\n    ax1.plot(theta, r)\n    ax1.set_title('\u6781\u5750\u6807\u56fe')\n    \n    ax2 = plt.subplot(gs[0, 1])\n    categories = ['A', 'B', 'C', 'D']\n    values = [15, 30, 45, 10]\n    ax2.bar(categories, values)\n    ax2.set_title('\u67f1\u72b6\u56fe')\n    \n    ax3 = plt.subplot(gs[1, :])\n    x_line = np.linspace(0, 10, 100)\n    y_line1 = np.sin(x_line)\n    y_line2 = np.cos(x_line)\n    ax3.plot(x_line, y_line1, label='sin')\n    ax3.plot(x_line, y_line2, label='cos')\n    ax3.set_title('\u7ec4\u5408\u56fe')\n    ax3.legend()\n    \n    plt.tight_layout()\n    plt.show()\n    \n    print(\"\u9ad8\u7ea7\u56fe\u8868\u5df2\u663e\u793a\uff01\")\n\n# \u8fd0\u884c\u793a\u4f8b\nadvanced_visualization()<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"560\" src=\"https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55-1024x560.png\" alt=\"\" class=\"wp-image-20076\" style=\"width:596px;height:auto\" srcset=\"https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55-1024x560.png 1024w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55-300x164.png 300w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55-768x420.png 768w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55-830x454.png 830w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55-230x126.png 230w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55-350x191.png 350w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55-480x263.png 480w, https:\/\/92it.top\/wp-content\/uploads\/2026\/01\/image-55.png 1106w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>Scikit-learn\uff1a\u673a\u5668\u5b66\u4e60\u7684\u745e\u58eb\u519b\u5200\ud83d\udd16<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u4ec0\u4e48\u662f Scikit-learn\uff1f<\/p>\n\n\n\n<p><strong>Scikit-learn \u5c31\u50cf\u662f\u673a\u5668\u5b66\u4e60\u7684\u5de5\u5177\u7bb1<\/strong>\uff0c\u63d0\u4f9b\u4e86\u4ece\u6570\u636e\u9884\u5904\u7406\u5230\u6a21\u578b\u8bad\u7ec3\u3001\u8bc4\u4f30\u7684\u5b8c\u6574\u5de5\u5177\u94fe\uff0c\u662f Python \u673a\u5668\u5b66\u4e60\u7684\u4e8b\u5b9e\u6807\u51c6\u3002<\/p>\n\n\n\n<p><strong>\ud83d\udd39Scikit-learn \u6838\u5fc3\u529f\u80fd<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Scikit-learn \u6838\u5fc3\u529f\u80fd\u793a\u4f8b\nfrom sklearn.datasets import make_classification, load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.preprocessing import StandardScaler, LabelEncoder\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.svm import SVC\nfrom sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n\ndef scikit_learn_basics():\n    \"\"\"\u6f14\u793a Scikit-learn \u7684\u6838\u5fc3\u529f\u80fd\"\"\"\n    \n    print(\"=== Scikit-learn \u6838\u5fc3\u529f\u80fd\u793a\u4f8b ===\")\n    \n    # 1. \u6570\u636e\u751f\u6210\n    X, y = make_classification(\n        n_samples=1000, \n        n_features=20, \n        n_classes=3, \n        n_informative=15,\n        random_state=42\n    )\n    \n    print(f\"\u6570\u636e\u5f62\u72b6\uff1aX={X.shape}, y={y.shape}\")\n    print(f\"\u7c7b\u522b\u5206\u5e03\uff1a{np.bincount(y)}\")\n    \n    # 2. \u6570\u636e\u5212\u5206\n    X_train, X_test, y_train, y_test = train_test_split(\n        X, y, test_size=0.2, random_state=42, stratify=y\n    )\n    \n    print(f\"\u8bad\u7ec3\u96c6\u5927\u5c0f\uff1a{X_train.shape[0]}\")\n    print(f\"\u6d4b\u8bd5\u96c6\u5927\u5c0f\uff1a{X_test.shape[0]}\")\n    \n    # 3. \u6570\u636e\u9884\u5904\u7406\n    scaler = StandardScaler()\n    X_train_scaled = scaler.fit_transform(X_train)\n    X_test_scaled = scaler.transform(X_test)\n    \n    print(\"\u6570\u636e\u6807\u51c6\u5316\u5b8c\u6210\")\n    \n    # 4. \u6a21\u578b\u8bad\u7ec3\u548c\u6bd4\u8f83\n    models = {\n        '\u903b\u8f91\u56de\u5f52': LogisticRegression(random_state=42),\n        '\u968f\u673a\u68ee\u6797': RandomForestClassifier(n_estimators=100, random_state=42),\n        '\u652f\u6301\u5411\u91cf\u673a': SVC(random_state=42)\n    }\n    \n    results = {}\n    \n    for name, model in models.items():\n        print(f\"\\n\u8bad\u7ec3 {name}...\")\n        \n        # \u8bad\u7ec3\u6a21\u578b\n        model.fit(X_train_scaled, y_train)\n        \n        # \u9884\u6d4b\n        y_pred = model.predict(X_test_scaled)\n        \n        # \u8bc4\u4f30\n        accuracy = accuracy_score(y_test, y_pred)\n        results[name] = accuracy\n        \n        print(f\"{name} \u51c6\u786e\u7387\uff1a{accuracy:.4f}\")\n        print(f\"\u5206\u7c7b\u62a5\u544a\uff1a\\n{classification_report(y_test, y_pred)}\")\n    \n    # 5. \u7ed3\u679c\u6bd4\u8f83\n    print(\"\\n=== \u6a21\u578b\u6bd4\u8f83 ===\")\n    for name, accuracy in results.items():\n        print(f\"{name}: {accuracy:.4f}\")\n    \n    best_model = max(results, key=results.get)\n    print(f\"\\n\u6700\u4f73\u6a21\u578b\uff1a{best_model}\")\n    \n    return models[best_model]\n\n# \u8fd0\u884c\u793a\u4f8b\nbest_model = scikit_learn_basics()<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">=== Scikit-learn \u6838\u5fc3\u529f\u80fd\u793a\u4f8b ===\n\u6570\u636e\u5f62\u72b6\uff1aX=(1000, 20), y=(1000,)\n\u7c7b\u522b\u5206\u5e03\uff1a[329 332 339]\n\u8bad\u7ec3\u96c6\u5927\u5c0f\uff1a800\n\u6d4b\u8bd5\u96c6\u5927\u5c0f\uff1a200\n\u6570\u636e\u6807\u51c6\u5316\u5b8c\u6210\n\n\u8bad\u7ec3 \u903b\u8f91\u56de\u5f52...\n\u903b\u8f91\u56de\u5f52 \u51c6\u786e\u7387\uff1a0.7200\n\u5206\u7c7b\u62a5\u544a\uff1a\n              precision    recall  f1-score   support\n\n           0       0.84      0.64      0.72        66\n           1       0.67      0.74      0.71        66\n           2       0.69      0.78      0.73        68\n\n    accuracy                           0.72       200\n   macro avg       0.73      0.72      0.72       200\nweighted avg       0.73      0.72      0.72       200\n\n\n\u8bad\u7ec3 \u968f\u673a\u68ee\u6797...\n\u968f\u673a\u68ee\u6797 \u51c6\u786e\u7387\uff1a0.8050\n\u5206\u7c7b\u62a5\u544a\uff1a\n              precision    recall  f1-score   support\n\n           0       0.87      0.82      0.84        66\n           1       0.73      0.82      0.77        66\n           2       0.83      0.78      0.80        68\n\n    accuracy                           0.81       200\n   macro avg       0.81      0.81      0.81       200\nweighted avg       0.81      0.81      0.81       200\n\n\n\u8bad\u7ec3 \u652f\u6301\u5411\u91cf\u673a...\n\u652f\u6301\u5411\u91cf\u673a \u51c6\u786e\u7387\uff1a0.8450\n\u5206\u7c7b\u62a5\u544a\uff1a\n              precision    recall  f1-score   support\n\n           0       0.90      0.85      0.88        66\n           1       0.78      0.88      0.83        66\n           2       0.86      0.81      0.83        68\n\n    accuracy                           0.84       200\n   macro avg       0.85      0.85      0.85       200\nweighted avg       0.85      0.84      0.85       200\n\n\n=== \u6a21\u578b\u6bd4\u8f83 ===\n\u903b\u8f91\u56de\u5f52: 0.7200\n\u968f\u673a\u68ee\u6797: 0.8050\n\u652f\u6301\u5411\u91cf\u673a: 0.8450\n\n\u6700\u4f73\u6a21\u578b\uff1a\u652f\u6301\u5411\u91cf\u673a<\/pre>\n\n\n\n<p>\u3000\u3000<\/p>\n\n\n\n<p><strong>\ud83d\udd39\u5b8c\u6574\u7684\u673a\u5668\u5b66\u4e60\u6d41\u7a0b<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u5b8c\u6574\u7684\u673a\u5668\u5b66\u4e60\u6d41\u7a0b\u793a\u4f8b\ndef complete_ml_pipeline():\n    \"\"\"\u6f14\u793a\u5b8c\u6574\u7684\u673a\u5668\u5b66\u4e60\u6d41\u7a0b\"\"\"\n   \n    print(\"=== \u5b8c\u6574\u673a\u5668\u5b66\u4e60\u6d41\u7a0b ===\")\n   \n    # 1. \u52a0\u8f7d\u6570\u636e\n    iris = load_iris()\n    X = iris.data\n    y = iris.target\n    feature_names = iris.feature_names\n    target_names = iris.target_names\n   \n    print(f\"\u6570\u636e\u96c6\uff1a{iris.DESCR.split('\\n')[0]}\")\n    print(f\"\u7279\u5f81\u6570\u91cf\uff1a{len(feature_names)}\")\n    print(f\"\u7c7b\u522b\u6570\u91cf\uff1a{len(target_names)}\")\n   \n    # 2. \u6570\u636e\u63a2\u7d22\n    df = pd.DataFrame(X, columns=feature_names)\n    df['target'] = y\n   \n    print(\"\\n\u6570\u636e\u9884\u89c8\uff1a\")\n    print(df.head())\n   \n    print(\"\\n\u6570\u636e\u7edf\u8ba1\uff1a\")\n    print(df.describe())\n   \n    # 3. \u6570\u636e\u53ef\u89c6\u5316\n    plt.figure(figsize=(12, 4))\n   \n    plt.subplot(1, 2, 1)\n    for i, target_name in enumerate(target_names):\n        plt.scatter(\n            df[df['target'] == i]['sepal length (cm)'],\n            df[df['target'] == i]['sepal width (cm)'],\n            label=target_name\n        )\n    plt.xlabel('\u82b1\u843c\u957f\u5ea6')\n    plt.ylabel('\u82b1\u843c\u5bbd\u5ea6')\n    plt.title('\u82b1\u843c\u5c3a\u5bf8\u5206\u5e03')\n    plt.legend()\n   \n    plt.subplot(1, 2, 2)\n    for i, target_name in enumerate(target_names):\n        plt.scatter(\n            df[df['target'] == i]['petal length (cm)'],\n            df[df['target'] == i]['petal width (cm)'],\n            label=target_name\n        )\n    plt.xlabel('\u82b1\u74e3\u957f\u5ea6')\n    plt.ylabel('\u82b1\u74e3\u5bbd\u5ea6')\n    plt.title('\u82b1\u74e3\u5c3a\u5bf8\u5206\u5e03')\n    plt.legend()\n   \n    plt.tight_layout()\n    plt.show()\n   \n    # 4. \u6570\u636e\u51c6\u5907\n    X_train, X_test, y_train, y_test = train_test_split(\n        X, y, test_size=0.3, random_state=42, stratify=y\n    )\n   \n    # 5. \u6a21\u578b\u8bad\u7ec3\n    from sklearn.ensemble import RandomForestClassifier\n    model = RandomForestClassifier(n_estimators=100, random_state=42)\n    model.fit(X_train, y_train)\n   \n    # 6. \u6a21\u578b\u8bc4\u4f30\n    y_pred = model.predict(X_test)\n    accuracy = accuracy_score(y_test, y_pred)\n   \n    print(f\"\\n\u6a21\u578b\u51c6\u786e\u7387\uff1a{accuracy:.4f}\")\n    print(\"\\n\u6df7\u6dc6\u77e9\u9635\uff1a\")\n    print(confusion_matrix(y_test, y_pred))\n    print(\"\\n\u5206\u7c7b\u62a5\u544a\uff1a\")\n    print(classification_report(y_test, y_pred, target_names=target_names))\n   \n    # 7. \u7279\u5f81\u91cd\u8981\u6027\n    feature_importance = model.feature_importances_\n    feature_df = pd.DataFrame({\n        '\u7279\u5f81': feature_names,\n        '\u91cd\u8981\u6027': feature_importance\n    }).sort_values('\u91cd\u8981\u6027', ascending=False)\n   \n    print(\"\\n\u7279\u5f81\u91cd\u8981\u6027\uff1a\")\n    print(feature_df)\n   \n    # 8. \u7279\u5f81\u91cd\u8981\u6027\u53ef\u89c6\u5316\n    plt.figure(figsize=(8, 4))\n    plt.bar(feature_df['\u7279\u5f81'], feature_df['\u91cd\u8981\u6027'])\n    plt.title('\u7279\u5f81\u91cd\u8981\u6027')\n    plt.xlabel('\u7279\u5f81')\n    plt.ylabel('\u91cd\u8981\u6027')\n    plt.xticks(rotation=45)\n    plt.tight_layout()\n    plt.show()\n   \n    return model, feature_df\n\n# \u8fd0\u884c\u793a\u4f8b\ntrained_model, feature_importance = complete_ml_pipeline()<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00\u200b\ud83d\udd16 \u672c\u7ae0\u5c06\u4e3a\u4f60\u8be6\u7ec6\u4ecb\u7ecd\u673a\u5668\u5b66\u4e60\u4e2d\u6700\u6838\u5fc3\u7684\u56db\u4e2a Python \u5e93\uff1aNumPy\u3001Pandas\u3001Matplot [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48],"tags":[],"_links":{"self":[{"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/posts\/20071"}],"collection":[{"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/92it.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=20071"}],"version-history":[{"count":3,"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/posts\/20071\/revisions"}],"predecessor-version":[{"id":20078,"href":"https:\/\/92it.top\/index.php?rest_route=\/wp\/v2\/posts\/20071\/revisions\/20078"}],"wp:attachment":[{"href":"https:\/\/92it.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/92it.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/92it.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}