尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

数据分析入门:conda创建环境、安装NumPy与Jupyter实战

数据分析入门:conda创建环境、安装NumPy与Jupyter实战 数据分析入门最容易卡住的阶段不是写算法而是环境创建和依赖安装。很多人明明照着教程装完了numpy、装完了jupyter结果一打开项目还是跑不起来或者提示找不到模块。为什么会这样因为数据分析环境不是“装一个Python”就结束了它至少包含解释器、第三方库、交互式编程工具和项目目录四部分。这篇文章围绕数据分析入门的核心路径来拆用conda创建独立环境安装NumPy启动Jupyter最后创建并跑通第一个数据分析项目。不管你是刚从Excel转向Python还是在学校课程里学到“数据分析-2-3-环境创建”这类章节这个流程都适用。1. 先想清楚数据分析环境不是装个Python就完事很多人对环境创建的理解是“装个Anaconda就算完成了”。这个说法只对了一半。Anaconda确实自带了很多数据科学常用库但它只是一个入门入口不等于项目环境已经规划好了。1.1 数据分析环境的四个组成部分一个能正常跑数据分析项目的环境至少需要四样东西Python解释器。它负责执行代码。没有解释器代码只是文本。第三方库。比如NumPy、pandas、matplotlib它们提供现成的数组、表格、绘图能力。交互式编程工具。最常见的就是Jupyter Notebook或Jupyter Lab适合边写代码边看结果。工作目录和项目文件。也就是你的数据文件、脚本文件、输出文件都放在哪里。这四个部分任何一个出问题整体就跑不起来。比如解释器对了但库没装会提示ModuleNotFoundError库装了但Jupyter启动时找不到那Notebook里依然无法导入环境创建好了但目录不对文件树里找不到你的数据。所以数据分析环境创建的第一步不是急着敲命令而是先确认自己缺哪一块。我见过不少新人在base环境里装了一堆包最后依赖冲突项目还没开始就废了。1.2 为什么很多新手会卡在“找不到模块”数据分析入门最常见的报错是“No module named numpy”。这句话表面上是numpy没装实际上一半情况是装错了环境。Windows下最常见的坑是电脑里有多个Python版本或者装了Python后又装了Anaconda两个解释器混在一起。你在命令行敲pip install numpy默认安装到的是PATH里排在前面的那个Python但你在Jupyter里用的可能是另一个Python。结果就是装是装了但不是同一个环境导入照样失败。还有一类问题是路径没有加入系统PATH。比如“jupyter不是内部或外部命令”“pip无法识别为cmdlet”这些基本都是命令所在目录没有进入PATH。环境创建环节路径问题一定要先处理掉否则后面每个命令都可能碰壁。1.3 直接装系统Python和conda环境有什么区别用conda创建独立环境本质上是把项目和项目依赖隔离起来。这和开发后端服务时用虚拟环境隔离依赖是一个思路。对比项直接装系统Pythonconda独立环境安装位置系统目录或用户目录conda管理的独立目录依赖隔离差容易相互污染好各环境互不影响切换项目麻烦可能需要卸载重装conda activate 即可安装包冲突容易发生冲突范围被限制在当前环境适合场景临时学习、随手测试项目开发、课程练习、长期维护我一般建议从第一个数据分析项目开始就建立独立环境。这样做的好处是今天装NumPy明天装pandas后天换成Python 3.11版本都不会影响其他项目。虽然前期多敲几步命令但后面省下来的排查时间远不止这些。2. 用conda创建独立环境把安装风险隔离掉环境创建这一步核心工具推荐conda。原因是conda不仅能管理Python包还能管理Python解释器版本。你在创建环境的时候直接指定python版本比手动下载安装多个Python可维护得多。2.1 装Miniconda还是Anaconda这两个不是二选一的竞争关系而是同一个工具的两种发行方式。Anaconda是完整版自带几百个科学计算库包括numpy、pandas、matplotlib、Jupyter等。优点是开箱即用缺点是体积大而且base环境里很多库你可能永远用不到。Miniconda是精简版只带conda和一个最小化Python环境。所有库都需要自己安装。优点是干净、可控、体积小适合想弄清楚依赖关系的人。我的建议是如果磁盘空间充足且你想快速跑通一个数据分析案例用Anaconda更省心。如果你想长期做开发或者希望每个项目环境都比较干净用Miniconda。无论选哪个都不要两个都装否则环境路径更容易乱。2.2 创建环境、激活环境和切换环境打开终端把下面几条命令按顺序执行conda create -n data python3.10 -y这条命令做了三件事-n data指定环境名称为data环境名可以自己定义。python3.10指定该环境中安装Python 3.10版本。版本号以你当前可用的稳定版本为准。-y跳过安装确认自动执行。环境创建完成后需要激活conda activate data激活成功的一个直接判断标准是看命令行前缀。Windows下会从(base)变成(data)Linux/macOS下同样会在提示符前面显示环境名。激活之后你执行的所有python命令、pip命令、jupyter命令都会优先在data环境里生效。切换环境也很简单conda deactivate退出当前环境。如果想回到某个环境再执行conda activate 环境名就行。列出所有环境可以用conda env list我一般会在创建项目之前先执行一条conda env list看看当前机器上已经有哪些环境。这样能避免重复创建或者误删现有环境。2.3 环境创建失败的常见原因conda创建环境失败大部分不是命令问题而是网络、磁盘或者路径问题。如果提示“CondaHTTPError”或下载中断通常是网络连接不稳定。可以配置国内镜像源或者换一个网络环境再试。如果是“PermissionError”说明终端没有足够的写权限。Windows下以管理员身份打开终端Linux/macOS下检查用户目录权限即可。如果磁盘空间不足conda会在下载依赖时中止。建环境前可以先用conda clean --all清理缓存腾出空间。还有一种是“conda命令不存在”。这几乎可以断定是安装时没有把conda加入系统PATH。最简单的处理方式是在安装向导里勾选“Add to PATH”或者使用Anaconda Prompt打开终端它已经帮你配置好路径。3. 安装NumPy装完不能验证等于没装环境创建好之后第一步不是写业务代码而是安装数据分析最基础的库NumPy。3.1 用conda安装还是pip安装在conda环境里安装NumPy有两种常见方式conda install numpy或者pip install numpy两者的区别在于conda会处理依赖关系并且从conda仓库下载预编译好的包兼容性通常更有保障pip安装的是Python包索引里的版本安装速度有时更快但依赖处理相对简单。对于新手我更建议在conda环境内优先使用conda install。如果你在某个项目里需要安装conda仓库里没有的新版本库再考虑pip。这里有一个很关键的点你安装的库只会进入当前激活的环境。如果终端前缀不是(data)那么pip安装的numpy可能装到了base或者其他Python环境里。等你在Jupyter里切换内核又发现module not found就会非常困惑。3.2 装完之后怎么验证安装完成不代表就一定能正常使用。我会用三层验证方式第一层命令行验证python -c import numpy; print(numpy.__version__)如果输出一个类似1.26.4的版本号说明numpy已经装到了当前环境并且Python能正确找到它。第二层交互式验证python进入Python交互环境后执行import numpy as np arr np.array([1, 2, 3]) print(arr * 2)能正常打印[2 4 6]说明NumPy的数组运算也可用。第三层在Jupyter里验证。这个要等Jupyter安装完成后进行。一般我会在Notebook里直接执行import numpy as np如果没有红色报错说明环境和编辑器已经打通。3.3 遇到ModuleNotFoundError和AttributeError怎么处理如果验证时报ModuleNotFoundError: No module named numpy先不要急着重新安装。正确的排查顺序是用conda env list确认当前环境是哪一个。用pip show numpy查看numpy是否安装。用python -c import sys; print(sys.executable)查看当前Python解释器路径。很多情况下报错是因为终端里的Python和Jupyter里的Python不是同一个。确认解释器路径之后再决定是激活环境安装还是在Jupyter里重新选择内核。还有一种情况是AttributeError: module numpy has no attribute trapz。这类错误通常是代码里的函数名和当前NumPy版本不一致。NumPy在版本升级过程中有些函数会被重命名或迁移到子模块。遇到这种情况不要慌先看当前版本的官方文档里函数的新名称或者用conda update numpy、pip install --upgrade numpy升级版本再试。4. 启动Jupyter从命令行到浏览器打开的完整链路Jupyter是数据分析里最常用的交互式编程工具。它的核心价值在于你可以一个单元格一个单元格地执行代码边运行边看输出非常适合探索数据和调试逻辑。4.1 Notebook和Lab有什么区别该怎么选Jupyter Notebook是老牌产品界面简单一个页面就是一个notebook文件适合单文件操作。Jupyter Lab是升级版多了文件资源管理器、多标签页、拖拽分屏、终端面板等能力更像一个轻量级IDE。对比项Jupyter NotebookJupyter Lab界面复杂度简单复杂但功能强文件管理较弱内置文件树多文件操作不方便多标签、分屏适合场景快速测试、单文件分析项目开发、多文件配合新人友好度高中等我的建议是如果只是为了学习NumPy、pandas先安装Notebook就够了如果你要长期在Jupyter里做数据分析项目直接上Lab体验会好很多。安装命令在激活环境后执行conda install notebook或者conda install jupyterlab如果你想一次把notebook和lab都装上可以安装jupyter这个元包conda install jupyter4.2 启动命令、端口和目录切换启动Jupyter Notebook的命令是jupyter notebook启动Jupyter Lab的命令是jupyter lab启动后终端会输出一段URL通常类似http://localhost:8888/。浏览器没有自动打开的话手动复制这个地址到地址栏即可。默认端口是8888。如果端口被占用Jupyter会自动往后找比如使用8889、8890。也可以通过参数指定端口jupyter notebook --port8899这里特别提醒一个操作习惯启动Jupyter之前先切换到你的项目目录。cd D:\my_projects\first_data_project jupyter notebook因为Jupyter界面里的文件树默认就是启动命令执行时所在的目录。如果你在某个系统目录下启动后续访问项目里的数据文件会很不方便。Jupyter Lab里虽然可以切换目录但更稳妥的方式还是启动前直接定位到项目目录。4.3 页面空白或者浏览器打不开怎么办Windows下Jupyter打开后空白页面是其中一个比较容易踩的坑。这类问题背后一般有几种情况现象可能原因处理建议浏览器一直加载白屏内核没有响应或版本不兼容看终端是否报错重启内核浏览器没有自动弹出浏览器设置或终端后台复制终端里的URL手动打开打开后全部空白Jupyter版本和浏览器缓存冲突换浏览器或无痕模式重开端口服务起不来8888端口被占用换端口或停掉占用进程一直显示“Kernel error”Python内核路径不对python -m ipykernel install --user重新注册内核我自己处理这种问题一般先看启动Jupyter的那个终端窗口有没有报错。终端是主程序浏览器只是显示端。如果终端本身报错了说明服务没起来问题在环境和依赖如果终端没问题再考虑浏览器清缓存、换内核、换端口。4.4 新建.ipynb和.py文件的方法在Jupyter网页右上角点击“New”默认会新建一个.ipynb后缀的notebook文件。这是数据分析最常用的文件。如果想创建.py文件有几个办法在Jupyter界面里选择“New” - “Text File”然后重命名为xxx.py。在Jupyter Lab的文件管理器中直接右键新建Python文件。在系统终端里先创建文件再回到Jupyter里用查看器打开。一个实用的技巧是把.py文件放到项目目录里然后在Notebook的单元格里运行%run my_script.py这样可以在notebook里调用Python脚本文件里的函数和逻辑又不需要把全部代码塞进单元格里。5. 创建第一个数据分析项目把环境知识落地成示例环境创建、NumPy安装、Jupyter启动这些步骤做完之后必须用一个实际项目把它们串起来。否则环境只是环境没有产生任何数据分析的产出。5.1 项目目录怎么规划一个数据分析项目哪怕是练手项目也建议把目录结构先铺好first_data_project/ ├── data/ # 原始数据文件 ├── output/ # 输出结果、图表、日志 ├── 01_numpy_check.ipynb # 第一步验证numpy ├── 02_basic_stats.ipynb # 第二步基础统计 └── README.md # 项目说明这样做有几个原因数据、代码、输出分开不容易混。文件命名加上序号执行顺序一目了然Jupyter文件树里也会按序号排列。后续加pandas、matplotlib时可以直接扩展新文件不影响旧代码。5.2 Notebook里跑一个最小的NumPy示例启动Jupyter后在项目目录下新建一个Notebook文件名我习惯写成01_numpy_check.ipynb。在第一个单元格里输入import numpy as np scores np.array([78, 85, 92, 66, 88, 95]) print(平均值:, scores.mean()) print(标准差:, scores.std()) print(大于85分的成绩:, scores[scores 85])点击运行如果环境配置正确输出应该类似平均值: 84.0 标准差: 9.521493299440441 大于85分的成绩: [92 88 95]这个例子看起来简单实际上验证了三件事numpy已经正常导入数组计算、聚合统计、布尔筛选都能正常执行Jupyter的Python内核和当前环境已经打通。我一般会先跑这种最小样例而不是一上来就导入一个很大的数据集。最小样例能快速定位环境问题也能帮助你确认“项目可以往后写了”。5.3 从print输出到保存结果文件Notebook里的print适合看过程但真实分析结果最好保存成文件。这样后续读取、归档、交付都比较方便。在Notebook里可以继续写with open(output/summary.txt, w, encodingutf-8) as f: f.write(f平均成绩: {scores.mean():.2f}\n) f.write(f标准差: {scores.std():.2f}\n)运行后打开项目目录下的output/summary.txt能看到两行结果。到这一步你就跑通了一个完整的最小闭环创建环境 - 安装NumPy - 启动Jupyter - 创建项目目录 - 编写分析代码 - 保存输出。5.4 接下来的扩展方向当这个最小项目跑通之后往后就可以沿着数据分析的主流路线继续扩展用pandas读取csv、Excel表格数据用matplotlib或seaborn画图观察分布和趋势用groupby做分组统计在Notebook里写思维记录把分析过程和结论一起保留。这些扩展都不需要重新创建环境只要在同一个环境里继续安装库就行。这也是为什么环境创建时要把依赖隔离做好因为后面要装的库会越来越多。6. 高频报错排查先看现象再查环境最后改参数最后一部分集中整理环境创建和项目搭建过程中最常踩的几个坑。这些问题在数据分析社区里反复出现很多不是能力问题而是排查顺序不对。6.1 先确定排查顺序现象、环境、依赖遇到报错的时候我一般不会直接百度报错文本而是先按顺序查三样东西现象。是命令找不到还是Python导入失败还是Jupyter页面空白。不同现象指向不同方向。环境。先在终端里执行conda env list看当前激活的是哪个环境。再执行python -c import sys; print(sys.executable)看解释器路径。依赖。项目里用到的库有没有装到当前环境版本是否满足要求。这个顺序能排除掉一半以上的“假错误”。很多报错不是功能不支持而是你运行的命令在另一个环境里。6.2 高频错误和解决建议对照表下面这些错误是我在实际教学和项目里见到最多的错误表现常见原因处理建议jupyter 不是内部或外部命令Jupyter没有安装或命令路径未加入PATH先用conda install jupyter安装再用Anaconda Prompt启动pip 无法识别为 cmdletpip没有加入PATH用python -m pip install 包名No module named numpyPython解释器和库不在同一环境激活环境后重新安装或切换Jupyter内核numpy has no attribute trapzNumPy版本与代码不一致函数改名查当前版本文档或升级NumPyJupyter打开后空白内核未启动、端口占用、浏览器缓存看终端报错换端口用无痕窗口重开conda创建环境卡住网络问题、镜像源慢、磁盘空间不足配置镜像源清理conda缓存换网络再试遇到这些错误最忌讳的是反复卸载重装。先定位问题发生在哪一层再针对那一层做修复。6.3 用环境配置文件把依赖固定下来当项目跑通之后我建议顺手把环境依赖导出一份配置文件。这样以后换电脑、给同事同步项目时不需要手动一个个安装包。在项目根目录创建一个environment.ymlname: data dependencies: - python3.10 - numpy - jupyter - notebook以后重建环境时只需要conda env create -f environment.yml这样环境创建就从“手动一步步敲命令”变成了“配置文件一键重建”。对数据分析项目来说这个文件相当于项目的依赖清单。有了它环境安装的可复现性会高很多。我自己在带新人时一般只强调三件事先建独立环境再验证import最后再启动Jupyter。这三步只要稳了后面几乎所有安装层面的报错都能少一半。环境创建这个环节表面上是敲命令本质上是在给自己的项目画隔离线。隔离做得好后面装pandas、装matplotlib、换Python版本都不会互相打架。如果这篇文章里的某些命令在你的机器上报错先别急着怀疑电脑不行按上面的顺序把现象、环境、依赖列一遍基本都能定位。
返回列表