为什么推荐Python做数据分析?如何学习?

Posted 黑马程序员官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么推荐Python做数据分析?如何学习?相关的知识,希望对你有一定的参考价值。

用一个小例子,看看Python和Java读取CSV文件并进行数据分析时的代码量和难度。

假设我们有一个CSV文件,其中包含某个城市每个月的平均温度和降雨量数据。我们需要读取这个CSV文件,并计算该城市每年的平均温度和降雨量。以下是使用Python和Java分别实现这个任务的代码。

Python代码:

import pandas as pd

# 读取CSV文件
df = pd.read_csv("city_weather.csv")

# 计算每年的平均温度和降雨量
df["year"] = pd.to_datetime(df["date"]).dt.year
yearly_data = df.groupby("year").mean()

print(yearly_data)

Java代码:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class CityWeatherAnalysis 

    public static void main(String[] args) throws IOException 
        // 读取CSV文件
        BufferedReader reader = new BufferedReader(new FileReader("city_weather.csv"));
        String line = reader.readLine();
        Map<Integer, Double> tempSumByYear = new HashMap<>();
        Map<Integer, Double> rainSumByYear = new HashMap<>();
        Map<Integer, Integer> countByYear = new HashMap<>();
        while ((line = reader.readLine()) != null) 
            String[] fields = line.split(",");
            int year = Integer.parseInt(fields[0].substring(0, 4));
            double temp = Double.parseDouble(fields[1]);
            double rain = Double.parseDouble(fields[2]);
            if (!tempSumByYear.containsKey(year)) 
                tempSumByYear.put(year, 0.0);
                rainSumByYear.put(year, 0.0);
                countByYear.put(year, 0);
            
            tempSumByYear.put(year, tempSumByYear.get(year) + temp);
            rainSumByYear.put(year, rainSumByYear.get(year) + rain);
            countByYear.put(year, countByYear.get(year) + 1);
        
        reader.close();
        // 计算每年的平均温度和降雨量
        for (int year : tempSumByYear.keySet()) 
            double avgTemp = tempSumByYear.get(year) / countByYear.get(year);
            double avgRain = rainSumByYear.get(year) / countByYear.get(year);
            System.out.println(year + "," + avgTemp + "," + avgRain);
        
    

可以看出,Python的代码量明显是更少的,而且相对来说好理解一些。这是因为Python有很多专门用于数据科学的库,比如Pandas,可以比较轻松的进行数据分析,Java呢就需要手动解析CSV文件并计算平均值了。

一、Python+数据分析怎么学

学习Python数据分析可以按照下面顺序

  1. 学习Python基础知识:学习Python语言的基础知识,包括语法、数据类型、控制流、函数等。这些基础知识是理解Python数据分析的基础。
  2. 学习数据分析库:Python有许多用于数据分析的库,例如NumPy、Pandas、Matplotlib和Seaborn等。学习这些库的基础知识,包括数据类型、数据结构、数据处理、可视化等。
  3. 实践项目:通过实践项目来巩固所学知识和技能。可以从一些简单的数据分析项目入手,例如数据清洗、可视化、探索性分析等。
  4. 学习高级主题:学习高级主题,例如机器学习、深度学习、自然语言处理等。这些主题扩展了数据分析的能力和应用范围。

想要用Python实现数据分析,需要学习

数据采集和清洗:首先,你需要从数据源中采集数据并进行清洗。这可能涉及到Web API、数据库、CSV文件等多种数据源,并需要使用Python库进行数据清洗和处理,例如Pandas、Numpy等。

数据分析和可视化:一旦你已经收集到数据,需要进行分析和可视化。这可能涉及到使用Python的Pandas、Numpy和Matplotlib等库来计算和可视化数据。

统计分析:你需要掌握一些基本的统计学知识,例如概率、假设检验回归分析等,以便你可以使用Python中的Scipy和Statsmodels等库进行统计分析。

机器学习和人工智能:如果你想进行更高级的分析,例如机器学习和人工智能,你需要掌握一些基本的机器学习和人工智能知识,并使用Python中的Scikit-learn、Tensorflow等库来实现这些分析。

数据库管理你可能需要使用Python来管理和处理数据库。例如,你可以使用Python的Sqlalchemy库来连接和管理数据库,并使用Pandas来进行数据读取和写入。

二、Python学习资源

Python入门教程:

知乎学习版块547集的Python入门教程,可以让你的Python基础非常扎实。

Python 入门教程完整版(全 547 集) - 1. ubuntu 基本安装​www.zhihu.com/education/video-course/1483111485588742145

Python学习的简易步骤:找到目标 —> 了解Python —> 知道变量/算法/解释器 —> 数据类型 —> 列表和元祖 —> 字符串 —> 字典 —> 循环 —> 面向对象 —> 项目实战;

Python从变量到数据类型 / 输出格式大全!代码都可复制 基础学习输入 /转换数据类型的函数 / 算数、赋值、复合赋值、比较、逻辑运算符 条件语句边学边练,习题均有答案 / while的语法和应用 /while循环嵌套以及练习题 字符串 / Python列表的常用操作 / 元祖 / 集合 / 公共操作 推导式学习 / 函数 / 函数 / 文件的基本操作汇总(上) / 基本操作汇总(下) 面向对象基础篇 / 面向对象之魔法方法 / 面向对象实际案例:烤地瓜和搬家具 继承 / 面向对象的三大特征 / 异常学习 / 模块 /  / 面向对象版学员管理系统

内容知识点
计算机组成原理计算机组成部分、操作系统分类、B/S和C/S架构、理解软件与硬件的区别
Python变量以及开发环境字符串、数字、字典、列表、元祖等
流程控制语句程序的执行顺序,顺序执行、循环执行、选择执行
函数定义函数、调用函数、函数的嵌套、递归函数
文件的基本操作文件的打开、编辑、关闭
面向对象编程类对象、实例对象、定义类、实例化对象
异常处理学会捕捉异常、自定义异常
模块和包理解模块和包的概念并学会使用
飞机大战游戏制作自己独立完成飞机大战游戏

Python进阶内容

  • 掌握网络编程技术,能够实现网络通讯
  • 知道通讯协议原理
  • 掌握开发中的多任务编程实现方式
  • 知道多进程多线程的原理

2 小时玩转 Python 多线程编程​www.zhihu.com/education/video-course/1483114387003551744https://www.zhihu.com/education/video-course/1483114387003551744

本套课程是帮助大家掌握多任务实现的并行和并发,掌握多进程实现多任务以及多线程实现多任务,带大家了解合理搭配多进程和线程。

SQL基础

  • 掌握mysql数据库的使用
  • 掌握sql语法
  • 掌握kettle数据迁移工具的使用
  • 熟练使用BI可视化工具
  • 数据开发有一定的认知,掌握BI工程师所具备的基本技能

Python 进阶之 MySQL 入门教程​www.zhihu.com/education/video-course/1483114387146166272https://www.zhihu.com/education/video-course/1483114387146166272

本套课程学习结束后,可以掌握数据库的基本操作,也可以掌握数据库的增删改查。掌握Python操作数据库CRUD。

在这里一共是有两套相关的路线图,大家作为学习参考。每一套打开之后都是有完整的课程:

黑马程序员Python:2023年Python+大数据学习路线图2https://zhuanlan.zhihu.com/p/450898507

请推荐一个人工智能学习路线图?5 赞同 · 2 评论回答https://www.zhihu.com/question/327809761/answer/2313592372

上面这两套学习路线图是以就业方向的!但是不影响大家作为学习参考。因为这两套学习路线图,从Python的基础知识 web相关 爬虫相关 数据分析 人工智能,已经全部覆盖了。

三、数据可视化

  • 如果是数据分析,接下来还需要掌握可视化工具。
  • 如果是数据开发,那么要学的还很多!

题主问的是数据分析方向需要Python基础,到这里就可以了。可视化工具,我们简单聊聊。

数据可视化,是便于汇报工作,便于让被人对我们的数据更好理解。图形是比密密麻麻的文字更便于理解的,在这里给大家推荐三款好用的工具:

  • (1)Cognos:Cognos拥有强大的数据库平台。但是Cognos并不适合小白,因为它需要用户有很好的数据分析基础。
  • (2)Tableau:Tableau的可视化功能非常能打,操作也简单。用户只需在简单配置,拖拖拽拽就可以完成数据分析。
  • (3)FineBI:Cognos和Tableau的确非常好用,但是它们是两款国外软件,相关的学习资料比较少。而FineBI是一款国内软件,我们可以在各大平台找到海量的学习教程。同时,运用FineBI进行部署非常方便。

数据分析光懂技术还不行,还需要具备以下软技能:

熟悉熟练业务,对于自学的小伙伴,这方面就会有点难,但是大家可以通过看书拓展一些认知;

沟通能力,数据分析师就业之后需要将自己的分析结果清楚的表达出来,说不出来那结果就跟着不重要了。

有业务经验,很好的沟通能力了之后,就要开始学习有效的数据分析方法了,这都需要大量的实战。一些课程分享给大家:

希望这些内容,可以帮助到想要深入了解数据分析的同学们,在此之外Excel也很重要昂~希望大家都有美好的未来。任何方向问题都可以找 @黑马程序员

 

以上是关于为什么推荐Python做数据分析?如何学习?的主要内容,如果未能解决你的问题,请参考以下文章

零基础入门Python要买什么书容易上手?强烈推荐这五本!!

学python推荐的10本豆瓣高分书单,小白到大佬,没看过太可惜了

2023年如何学习Python,保姆级新手入门指南,拿去吧你!

Python自动化办公知识点整理汇总

Python UI 开发用哪个好

学python有啥用处呢?