numpy学习笔记(1)

Numpy的介绍

一、NumPy简介
NumPy的全名为Numeric Python,是一个开源的Python科学计算库,它包括:
一个强大的N维数组对象ndrray;
比较成熟的(广播)函数库;
用于整合C/C++和Fortran代码的工具包;
实用的线性代数、傅里叶变换和随机数生成函数
NumPy的优点

  • 对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多;
  • NumPy中的数组的存储效率和输入输出性能均远远优于Python中等价的基本数据结构,且其能够提升的性能是与数组中的元素成比例的;
  • NumPy的大部分代码都是用C语言写的,其底层算法在设计时就有着优异的性能,这使得NumPy比纯Python代码高效得多

NumPy的缺陷

  • 由于NumPy使用内存映射文件以达到最优的数据读写性能,而内存的大小限制了其对TB级大文件的处理;
  • NumPy数组的通用性不及Python提供的list容器。
  • 因此,在科学计算之外的领域,NumPy的优势也就不那么明显。

不过使用Numpy处理TB级以下的数据是够用的,但要求计算机内存够处理你的数据。如果你觉得此库不能满足你的数据分析要求,还可以采用如下功能库进行数据分析:
1.pandas库

pandas 是一个开源的软件,它具有 BSD 的开源许可,为 Python 编程语言提供高性能,易用数据结构和数据分析工具。在数据改动和数据预处理方面,Python 早已名声显赫,但是在数据分析与建模方面,Python 是个短板。Pands 软件就填补了这个空白,能让你用 Python 方便地进行你所有数据的处理,而不用转而选择更主流的专业语言,例如 R 语言。

整合了劲爆的 IPyton 工具包和其他的库,它在 Python 中进行数据分析的开发环境在处理性能,速度,和兼容方面都性能卓越。Pands 不会执行重要的建模函数超出线性回归和面板回归;对于这些,参考 statsmodel 统计建模工具和 scikit-learn 库。为了把 Python 打造成顶级的统计建模分析环境,我们需要进一步努力,但是我们已经奋斗在这条路上了。
由 Galvanize 专家,数据科学家 Nir Kaldero 提供。

2. IPython

IPython 是一个在多种编程语言之间进行交互计算的命令行 shell,最开始是用 python 开发的,提供增强的内省,富媒体,扩展的 shell 语法,tab 补全,丰富的历史等功能。IPython 提供了如下特性:

  • 更强的交互 shell(基于 Qt 的终端)
  • 一个基于浏览器的记事本,支持代码,纯文本,数学公式,内置图表和其他富媒体
  • 支持交互数据可视化和图形界面工具
  • 灵活,可嵌入解释器加载到任意一个自有工程里
  • 简单易用,用于并行计算的高性能工具
  • 由数据分析总监,Galvanize 专家 Nir Kaldero 提供。

3.GraphLab Greate

GraphLab Greate 是一个 Python 库,由 C++ 引擎支持,可以快速构建大型高性能数据产品。 GraphLab Greate 的特点:
可以在您的计算机上以交互的速度分析以 T 为计量单位的数据量。在单一平台上可以分析表格数据、曲线、文字、图像。最新的机器学习算法包括深度学习,进化树和 factorization machines 理论。可以用 Hadoop Yarn 或者 EC2 聚类在你的笔记本或者分布系统上运行同样的代码。借助于灵活的 API 函数专注于任务或者机器学习。在云上用预测服务便捷地配置数据产品。为探索和产品监测创建可视化的数据。
由 Galvanize 数据科学家 Benjamin Skrainka 提供

4. Scikit-Learn

Scikit-Learn 是一个简单有效地数据挖掘和数据分析工具(库)。关于最值得一提的是,它人人可用,重复用于多种语境。它基于 NumPy,SciPy 和 mathplotlib 等构建。Scikit 采用开源的 BSD 授权协议,同时也可用于商业。Scikit-Learn 具备如下特性:

分类(Classification) – 识别鉴定一个对象属于哪一类别
回归(Regression) – 预测对象关联的连续值属性
聚类(Clustering) – 类似对象自动分组集合
降维(Dimensionality Reduction) – 减少需要考虑的随机变量数量
模型选择(Model Selection) –比较、验证和选择参数和模型
预处理(Preprocessing) – 特征提取和规范化
Galvanize 公司数据科学讲师,Isaac Laughlin提供

二 大数据处理分析工具(平台)和编程语言

大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息,如杂志,报纸,文章。大数据产生的其他例子包括购买交易记录,网络日志,病历,军事监控,视频和图像档案,及大型电子商务。

如何上述介绍的基于python的数据处理工具库还不能满足你的要求,则需要考虑使用可以处理大数据(TB级以上)的工具和编程语言。我了解的有以下几个:

2.1 Hadoop
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
  ⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
  ⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  ⒊高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  ⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
  Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

* 2.2. Storm*

Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣。Storm由Twitter开源而来,其它知名的应用企业包括Groupon、淘宝、支付宝、阿里巴巴、乐元素、 Admaster等等。

Storm有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、 ETL(Extraction-Transformation-Loading的缩写,即数据抽取、转换和加载)等等。Storm的处理速度惊人:经测 试,每个节点每秒钟可以处理100万个数据元组。Storm是可扩展、容错,很容易设置和操作。

2.3. RapidMiner

RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。

2.4 SPARK计算引擎

  Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

Spark特点:

  1. 内存计算下,Spark 比 Hadoop 快100倍。
  2. Spark 提供了80多个高级运算符。
  3. 通用性:Spark 提供了大量的库,包括SQL、DataFrames、MLlib、GraphX、Spark Streaming。 开发者可以在同一个应用程序中无缝组合使用这些库。
  4. Spark 支持 Hadoop YARN,Apache Mesos,及其自带的独立集群管理器
    -(扩展1) Shark:Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了Hive的API来实现query Parsing和 Logic Plan generation,最后的PhysicalPlan execution阶段用Spark代替HadoopMapReduce。
  5. (扩展2)SparkR:SparkR是一个为R提供了轻量级的Spark前端的R包。 SparkR提供了一个分布式的data frame数据结构,解决了 R中的data frame只能在单机中使用的瓶颈,它和R中的data frame 一样支持许多操作,比如select,filter,aggregate等等。(类似dplyr包中的功能)这很好的解决了R的大数据级瓶颈问题。

2.5 大数据处理编程语言
硬核数据统计分析的语言和工具包。

  1. R语言(使用最多)
  2. Python(最近较热)
  3. JAVA
  4. Hadoop 和 Hive(其优点不是数据统计分析部分)
  5. Kafka 和 Storm

最近中国推出一款世界最快大数据处理软件——Date Thinker(个人不知道怎么样?)

2012年创立的宁波数方信息技术有限公司相继在宁波、香港、上海等城市搭建了计算机平台,组建了研发团队,研发了最快的大数据处理软件Date Thinker,在日志分析、文本搜索、商业智能、基因数据处理和社交数据分析等领域应用广泛。(以经济、高效、可扩展的方式构建高性能、低延时的计算体系,拥有大数据存储、搜索、挖掘、学习以及商业智能处理能力,其性能比知名的大数据分析软件Hadoop还要好。)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值