数据分析实例之初实验
对不同版本的系统选择不同的vscode版本,win7选择的是。
·
安装vscode
对不同版本的系统选择不同的vscode版本,win7选择的是VScode2022.07-1.70(支持 Windows 7 的最后一个 Visual Studio Code(VSCode)版本是 1.70.3),win10及以上可以根据自己的喜好选择新版:August 2024 (version 1.93)
安装步骤
- 同意协议

- 勾选附加任务

- 完成安装

安装Python
- 选择Customize installation,自定义安装;

- 附加选项

- 高级选项,(如果在机房的话,建议勾选all users,不过这个选框好像是disabled的),在自己电脑的话一般只有一个用户,所以无需勾选;然后安装路径可以自定义;然后点击安装。

集成配置
-
进入vscode,点击‘扩展‘图标,在搜索框输入目标内容,并搜索;
- 输入chinese,找到’中文(简体)‘汉化插件,点击安装,而后点击右下角弹窗,点击重启;
- 输入python,点击安装;
- 输入jupyter,点击安装;

-
配置python解释器;
- 点击菜单栏’查看‘,点击命令面板,输入’> python: Select interpreter‘,点击,选择python解释器;


- 点击菜单栏’查看‘,点击命令面板,输入’> python: Select interpreter‘,点击,选择python解释器;
-
修改默认配置文件,选择cmd,点击删除powershell;



-
关掉窗口,重新启动。
安装模块
若安装的python版本是python3.8,则需要先升级pip:
python -m pip install --upgrade pip
安装ipykernel:
pip install ipykernel
安装内核并为其命名(例如,这里命名为 “myenv”,可根据实际情况修改):
python -m ipykernel install --user --name=myenv
内核通常安装在以下位置:
Windows:C:\Users<你的用户名>\AppData\Roaming\jupyter\kernels<myenv>。
macOS 和 Linux:~/.local/share/jupyter/kernels/
安装numpy和Pillow:
pip install numpy
pip install Pillow
执行代码
将代码复制到txt文件,修改后缀为.ipynb,使用vscode执行。
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from PIL import Image\n",
"im = Image.open('doge.jpg')\n",
"# im.show() # 查看原图\n",
"display(im)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"# 查看图像的shape属性\n",
"im = np.array(im)\n",
"im.shape"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 查看某个像素点\n",
"im[100, 100]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 单独提取出所有像素点的红色分量\n",
"im_r = im[:,:,0]\n",
"# Image.fromarray(im_r).show()\n",
"display(Image.fromarray(im_r))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 将两张图片融合在一起\n",
"im1 = np.array(Image.open('doge.jpg'))\n",
"im2 = np.array(Image.open('cat.jpg'))\n",
"\n",
"# 确保两张图片大小相同 \n",
"assert im1.shape == im2.shape, \"两张图片大小必须相同\" \n",
"\n",
"# 计算融合后的图片 \n",
"# 注意:这里假设im1和im2都是RGB图像,并且我们分别给予它们0.4和0.6的权重 \n",
"im_blend = im1 * 0.4 + im2 * 0.6 \n",
"\n",
"# 使用np.clip将结果限制在0到255之间 \n",
"im_blend = np.clip(im_blend, 0, 255).astype(np.uint8)\n",
"\n",
"# 将NumPy数组转换回图片并显示 \n",
"blended_img = Image.fromarray(im_blend) # 得到的im_blend为浮点数,将其转换为整型\n",
"# blended_img.show() \n",
"display(blended_img)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 降采样\n",
"# 对图像进行下采样,每隔10个像素取一个像素 \n",
"im_downsample = im[::10, ::10, :] \n",
" \n",
"# 将下采样后的 NumPy 数组转换回 PIL 图像对象 \n",
"im_downsample_pil = Image.fromarray(im_downsample.astype(np.uint8)) # 确保数据类型为 uint8 \n",
" \n",
"# 显示图像 \n",
"# im_downsample_pil.show()\n",
"display(im_downsample_pil)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 翻转图片\n",
"im_flipped = im[::-1,:,:] # 上下翻转\n",
"# Image.fromarray(im_flipped).show()\n",
"display(Image.fromarray(im_flipped))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 裁剪图片\n",
"im_cropped = im[40: 540, 400: 900, :]\n",
"# Image.fromarray(im_cropped).show()\n",
"display(Image.fromarray(im_cropped))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "base kernel",
"language": "python",
"name": "base"
},
"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.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
更多推荐

所有评论(0)