四、Python 中的数据科学

    Python 有大量可用于数据科学的工具。

    Python 中的数据科学核心围绕着一些核心模块,通常包括【scipy,numpy,pandas,matplotlib 和 scikit-learn】。

    在这里,我们将探讨这些模块的基础知识以及它们的作用。

    Scipy是一个“生态系统”,包括一系列用于 Python 中科学计算的开源软件包。

    scipy 组织的网站在,包括生态系统的描述,,以及广泛的教程

    Scipy 具有广泛的功能。

    对于一个简单/随机的例子,让我们使用它的统计模块来模拟用翻转硬币,这是一个可以模拟随机变量的分布,随机变量要么是 0(称之为反面),要么是 1(称之为正面)。

    1. sts.bernoulli.rvs(0.5)
    2. # 0
    3. # 让我们翻转一堆硬币吧!
    4. coin_flips = [sts.bernoulli.rvs(0.5) for i in range(100)]
    5. print('The first ten coin flips are: ', coin_flips[:10])
    6. print('The percent of heads from this sample is: ', sum(coin_flips) / len(coin_flips) * 100, '%')
    7. '''
    8. The first ten coin flips are: [1, 1, 1, 1, 0, 1, 1, 0, 1, 1]
    9. The percent of heads from this sample is: 60.0 %
    10. '''

    四、Python 中的数据科学 - 图1

    numpy 网站是这里,包括他们的官方。

    注意:

    数组是“相似对象的系统排列,通常在行和列中”(来自 Wikipedia 的定义)

    有关 numpy 的更多练习,请查看集合 。

    Pandas 是一个用于在数据结构组织数据,并对其进行数据分析的软件包。

    Pandas 官方网站在这里,包括[ 10 分钟入门]等材料(

    Pandas 主要数据对象是 DataFrame(数据帧),它是一个功能强大的数据对象,用于将混合数据类型与标签一起存储。

    Pandas 数据帧还提供了大量可用于处理和分析数据的方法。

    如果你熟悉 R,pandas 数据帧对象和方法与 R 非常相似。

    1. # Pandas 标准导入为 pd
    2. import pandas as pd
    3. # 让我们从一组数据开始,但我们也为每个数据项放置一个标签
    4. dat_1 = np.array(['London', 'Washington', 'London', 'Budapest'])
    5. labels = ['Ada', 'Alonzo', 'Alan', 'John']
    6. # Pandas 提供 'Series' 数据对象来存储带有轴标签的 1d 数据
    7. pd.Series?
    8. # 让我们制作一个没有数据的序列,并收好它
    9. ser_1 = pd.Series(dat_1, labels)
    10. ser_1.head()
    11. '''
    12. Alonzo Washington
    13. Alan London
    14. John Budapest
    15. dtype: object
    16. '''
    17. # 如果我们有一些不同的数据(标签相同),我们可以制作另一个序列
    18. dat_2 = [36, 92, 41, 53]
    19. ser_2 = pd.Series(dat_2, labels)
    20. ser_2.head()
    21. '''
    22. Ada 36
    23. Alonzo 92
    24. Alan 41
    25. John 53
    26. dtype: int64
    27. '''
    28. # 然而,拥有一系列序列可能会很快变得非常混乱
    29. # 因此,Pandas 提供了数据帧 - 一个强大的数据对象,用于存储带标签的混合类型数据
    30. pd.DataFrame?
    31. # 有几种方法可以初始化数据帧
    32. # 在这里,我们提供了一个由我们的序列组成的字典
    33. df = pd.DataFrame(data={'Col-A': ser_1, 'Col-B':ser_2}, index=labels)
    34. df['Col-A'].value_counts()
    35. '''
    36. London 2
    37. Washington 1
    38. Budapest 1
    39. Name: Col-A, dtype: int64
    40. '''
    41. # 请注意,数据帧实际上是Series的集合
    42. # 当我们索引 df 时,如上所述,我们实际上是拉出一个序列
    43. # 因此,'.value_counts()' 实际上是一个 Series 方法
    44. type(df['Col-A'])
    45. # pandas.core.series.Series
    46. # Pandas 还为我们提供了一种直接探索和分析数据帧中数据的方法
    47. # 例如,所有数字数据列的平均值
    48. df.mean()
    49. '''
    50. Col-B 55.5
    51. dtype: float64
    52. '''

    对于 Pandas 的更多练习,你可以尝试一些练习集,包括这个和。

    Matplotlib 是一个用于绘图的库,特别是 2D 绘图。

    Matplotlib 官方网站包括官方以及示例的画廊,你可以从中起步和修改。

    png

    matplotlib 还有许多外部材料,包括。

    Scikit-Learn 是一个用于数据挖掘,数据分析和机器学习的软件包。

    这是 scikit-learn 官方网站,包括他们的官方。

    1. # 导入 sklearn
    2. import sklearn as skl
    3. skl?

    我们将在稍后的教程中入门机器学习并使用 sklearn。

    有许多资源可供学习如何使用这些软件包。

    上面的链接包括官方文档和教程,这是最好的起点。

    你还可以在谷歌中搜索其他资源和练习。