上QQ阅读APP看书,第一时间看更新
第1章 数据驱动程序设计
数据驱动程序设计(data-driven programming)是以数据为核心,将数据处理与分析的各项任务程序化的过程。程序员基于传统程序设计的控制流程与自定义函数,加入一维、二维、三维或更高维数据对象的向量化(vectorization)处理方式,运用隐式循环(implicit looping)的泛函式编程(functional programming)范式,结合面向对象编程(object-oriented programming)概念,以抽象层次较高的方式进行高效且精简的程序编写。
许多数据分析语言属于动态程序设计语言(dynamic programming languages),它们是高阶程序语言的一个类别,动态的意思是在执行时(runtime)才决定数据的结构,或引进所需的函数、对象或其他程序代码。JavaScript、PHP、Ruby、Python、R、MATLAB等都属于动态语言,而FORTRAN、C、C++则是传统的静态语言;前者弹性大、互动佳,后者执行速度快。数据科学家除了掌握传统的程序设计逻辑外,还要结合动态程序设计语言的数据结构与编程要领,更重要的是统计机器学习的专业知识,方能完成大数据分析不断尝试错误(trial-and-error)的快速雏形化建模(fast prototyping)任务,迎接数据驱动决策制定(data-driven decision making)的新时代。