253 lines
6.7 KiB
Text
253 lines
6.7 KiB
Text
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# 人工智能与机器学习-实验1\n",
|
||
"\n",
|
||
"## Part.II Numpy练习\n",
|
||
"\n",
|
||
"|学号 |姓名 |\n",
|
||
"|----------|--------|\n",
|
||
"|***REMOVED***|***REMOVED***|\n",
|
||
"|2020113874|何一涛|"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 1. 数组\n",
|
||
"\n",
|
||
"创建一个长度为10全为0的一维数组,然后让第5个元素等于1。"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"a = np.zeros(10)\n",
|
||
"a[4] = 1\n",
|
||
"print(a)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 2. 向量内积\n",
|
||
"\n",
|
||
"随机生成2个长度为$10^6$的向量,分别用numpy函数和for循环计算其内积。并比较耗时情况。"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"250517.08615769504\n",
|
||
"numpy:0.9500980377197266ms\n",
|
||
"250517.08615771346\n",
|
||
"for:450.66380500793457ms\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"import time\n",
|
||
"a = np.random.rand(1000000)\n",
|
||
"b = np.random.rand(1000000)\n",
|
||
"tic = time.time()\n",
|
||
"c = np.dot(a,b)\n",
|
||
"toc = time.time()\n",
|
||
"print(c)\n",
|
||
"print(\"numpy:\" + str(1000*(toc-tic)) + \"ms\")\n",
|
||
"c = 0\n",
|
||
"tic = time.time()\n",
|
||
"for i in range(1000000):\n",
|
||
" c += a[i]*b[i]\n",
|
||
"toc = time.time()\n",
|
||
"print(c)\n",
|
||
"print(\"for:\" + str(1000*(toc-tic)) + \"ms\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 3. 矩阵乘法\n",
|
||
"\n",
|
||
"生成一个$4\\times5$和一个$5\\times4$的矩阵,并计算它们的乘积。"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[0.832603 0.01479218 0.74726877 0.11899442 0.5139687 ]\n",
|
||
" [0.85742314 0.20950708 0.31393951 0.69463518 0.58622781]\n",
|
||
" [0.92412297 0.93890447 0.27295923 0.44996205 0.98461149]\n",
|
||
" [0.56097043 0.81885742 0.31026755 0.65530345 0.51932541]]\n",
|
||
"[[0.54243804 0.59199752 0.2088532 0.09047042]\n",
|
||
" [0.96482797 0.66663309 0.7223203 0.96680344]\n",
|
||
" [0.1848234 0.88155844 0.98424619 0.99646051]\n",
|
||
" [0.76723488 0.42095062 0.55842772 0.58467868]\n",
|
||
" [0.56045915 0.6447964 0.05470569 0.317023 ]]\n",
|
||
"[[0.98337534 1.54301691 1.01463973 1.0667643 ]\n",
|
||
" [1.58676566 1.59441744 1.05937409 1.184938 ]\n",
|
||
" [2.35467111 2.23789856 1.44499002 1.83856268]\n",
|
||
" [1.94552528 1.76219908 1.40836713 1.69937482]]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"a = np.random.rand(4,5)\n",
|
||
"b = np.random.rand(5,4)\n",
|
||
"c = np.dot(a,b)\n",
|
||
"print(a)\n",
|
||
"print(b)\n",
|
||
"print(c)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 4. 函数\n",
|
||
"\n",
|
||
"函数$f$定义如下,其中$x$是任意实数:\n",
|
||
"$$\n",
|
||
"f(x)=\\frac{\\sin(x+1)(x+1)}{2e^x}\n",
|
||
"$$,\n",
|
||
"\n",
|
||
"生成一个数组$a\\in \\mathbb{R}^5$,计算$b = f(a)$。"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[0.89379618 0.03735883 0.51341215 0.49607132 0.15340217]\n",
|
||
"[0.36734363 0.43023904 0.45210542 0.45422143 0.45221582]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"def f(x):\n",
|
||
" return np.sin(x+1)*(x+1)/(2*np.exp(x))\n",
|
||
"a = np.random.rand(5)\n",
|
||
"b = f(a)\n",
|
||
"print(a)\n",
|
||
"print(b)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 5. 平均值\n",
|
||
"\n",
|
||
"随机生成一个5行10列的矩阵,然后每行元素减去该行的平均值"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[0.39753532 0.54410703 0.60167078 0.24255209 0.67574439 0.01004289\n",
|
||
" 0.55770556 0.10702142 0.48778556 0.51648967]\n",
|
||
" [0.98453781 0.66164632 0.66346184 0.5019827 0.74216596 0.37279722\n",
|
||
" 0.02415767 0.21952032 0.94425462 0.83570665]\n",
|
||
" [0.366748 0.38391583 0.21428393 0.56555728 0.73883924 0.38754266\n",
|
||
" 0.7720652 0.68972519 0.69671146 0.43759293]\n",
|
||
" [0.93430798 0.57475894 0.23919737 0.31449016 0.56069848 0.23824185\n",
|
||
" 0.61332708 0.8877036 0.895658 0.39875045]\n",
|
||
" [0.80075957 0.85481337 0.10696488 0.91660988 0.95048433 0.62219214\n",
|
||
" 0.61386599 0.1400393 0.68407094 0.08965478]]\n",
|
||
"[[-0.01653016 0.13004156 0.18760531 -0.17151338 0.26167892 -0.40402258\n",
|
||
" 0.14364009 -0.30704405 0.07372009 0.10242419]\n",
|
||
" [ 0.3895147 0.06662321 0.06843873 -0.09304041 0.14714285 -0.22222589\n",
|
||
" -0.57086544 -0.37550279 0.34923151 0.24068354]\n",
|
||
" [-0.15855017 -0.14138234 -0.31101425 0.0402591 0.21354107 -0.13775551\n",
|
||
" 0.24676703 0.16442702 0.17141329 -0.08770524]\n",
|
||
" [ 0.36859459 0.00904555 -0.32651602 -0.25122323 -0.00501491 -0.32747154\n",
|
||
" 0.04761369 0.32199021 0.32994461 -0.16696294]\n",
|
||
" [ 0.22281405 0.27686785 -0.47098064 0.33866436 0.37253881 0.04424662\n",
|
||
" 0.03592048 -0.43790622 0.10612542 -0.48829074]]\n",
|
||
"[[ 0.00000000e+00]\n",
|
||
" [ 6.66133815e-17]\n",
|
||
" [-3.33066907e-17]\n",
|
||
" [ 1.11022302e-17]\n",
|
||
" [-3.33066907e-17]]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"a = np.random.rand(5,10)\n",
|
||
"b = a - np.mean(a,axis=1,keepdims=True)\n",
|
||
"print(a)\n",
|
||
"print(b)"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3.10.7 ('.venv': venv)",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.10.7"
|
||
},
|
||
"vscode": {
|
||
"interpreter": {
|
||
"hash": "1f0d395e06aa83586067b19165efc9b683889967164248deef4bbf1fa27cfb00"
|
||
}
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|