The Crystal Ball - Instruction Manual I: Introduction to Data Science

by Stephen Davies

A perfect introduction to the exploding field of Data Science for the curious, first-time student. The author brings his trademark conversational tone to the important pillars of the discipline: exploratory data analysis, choices for structuring data, causality, machine learning principles, and introductory Python programming using open-source Jupyter Notebooks.

Description from LibreTexts.

Publisher
University of Mary Washington
Subjects
Engineering, Data Science
Licence
CC BY-SA 4.0, as LibreTexts states it
Who can read
Tweens profiles and older, judged from its title and subjects

Contents

LibreTexts writes equations in TeX, and here they show as TeX; the PDF has them typeset.

  1. Front Matter
  2. TitlePage
  3. InfoPage
  4. Table of Contents
  5. Licensing
  6. 1: Introduction
  7. 1.1: Defining Data Science
  8. 1.2: A Word Of Warning
  9. 2: A trip to Jupyter
  10. 2.1: Jupyter Notebooks
  11. 2.2: Code and Output
  12. 3: Three Kinds of Atomic Data
  13. 3.1: Atomic Data
  14. 3.2: Environments and Variables
  15. 3.3: Atomic Data Types
  16. 3.4: The Three Kinds in Python
  17. 4: Memory pictures
  18. 4.1: A Picture of Memory
  19. 5: Calculations
  20. 5.1: Mathematical Operations
  21. 5.2: String Operations
  22. 5.3: Return Values
  23. 6: Scales of Measure
  24. 6.1: The Four Scales of Measure
  25. 6.2: Final Word
  26. 7: Three Kinds of Aggregate Data
  27. 7.1: Aggregate Data Types
  28. 7.2: Aggregate Data and Memory Pictures
  29. 8: Arrays in Python (1 of 2)
  30. 8.1: Packages
  31. 8.2: The NumPy 'ndarray'
  32. 8.3: Arrays in Memory Pictures
  33. 9: Arrays in Python (2 of 2)
  34. 9.1: Getting the Array Size
  35. 9.2: Accessing Individual Elements
  36. 9.3: “Vectorized” Arithmetic Operators
  37. 9.4: Copying – and Not Copying – Arrays
  38. 9.5: Sorting Arrays
  39. 9.6: More Exotic Array Modifications
  40. 9.7: Postlude- Characters Within a String
  41. 9.8: Summary
  42. 10: Interpreting Data
  43. 10.1: Independent and Dependent Variables
  44. 10.2: Association and Causality
  45. 10.3: Confounding Factors
  46. 10.4: Dealing with Confounding Factors
  47. 10.5: Spurious Associations
  48. 11: Associative Arrays in Python (1 of 3)
  49. 11.1: The Pandas Series
  50. 12: Associative Arrays in Python (2 of 3)
  51. 12.1: Accessing Individual Elements
  52. 12.2: Vectorized Arithmetic Operators
  53. 12.3: Copying Serieses
  54. 12.4: Sorting Serieses
  55. 12.5: Concatenating and Combining
  56. 12.6: Summary
  57. 13: Associative Arrays in Python (3 of 3)
  58. 13.1: Queries
  59. 14: Loops
  60. 14.1: The Two Species of Loops
  61. 14.2: A Word of Caution
  62. 14.3: Iterating Through an Array
  63. 14.4: Iterating Through the Values of a Series
  64. 14.5: Iterating Through the Keys of a Series
  65. 14.6: Iterating through the Keys and Values of a Series
  66. 14.7: Wrapping up
  67. 15: Exploratory Data Analysis- univariate
  68. 15.1: Categorical Data- Counts of Occurrences
  69. 15.2: Numerical data- Quantiles
  70. 15.3: Numerical Data- Other Summary Statistics
  71. 15.4: Plotting Univariate Data
  72. 15.5: Numerical Data- Histograms
  73. 15.6: Numerical Data- Box Plots
  74. 16: Tables in Python (1 of 3)
  75. 16.1: Reading a DataFrame from a .csv file
  76. 16.2: Missing Values
  77. 16.3: Removing Rows/Columns
  78. 17: Tables in Python (2 of 3)
  79. 17.1: Accessing Individual Rows and Columns
  80. 17.2: Accessing Individual Elements
  81. 17.3: Accessing a DataFrame's Metadata
  82. 17.4: Sorting DataFrames
  83. 17.5: Summary statistics for DataFrames
  84. 18: Tables in Python (3 of 3)
  85. 18.1: Queries
  86. 18.2: The .groupby() method
  87. 18.3: Looping with DataFrames
  88. 19: Exploratory Data Analysis: bivariate (1 of 2)
  89. 19.1: The Concept of Statistical Significance
  90. 19.2: Moving On
  91. 20: Exploratory Data Analysis: Bivariate (2 of 2)
  92. 20.1: Three Bivariate Scenarios
  93. 20.2: Importing scipy.stats
  94. 20.3: Two categorical variables
  95. 20.4: One Categorical and One Numeric Variable
  96. 20.5: Two Numeric Variables
  97. 20.6: Pearson Correlation Coefficient
  98. 21: Branching
  99. 21.1: The if statement
  100. 21.2: The if/else Statement
  101. 21.3: The if/elif/else statement
  102. 21.4: Nesting
  103. 21.5 Combining branching with loops
  104. 22: Functions (1 of 2)
  105. 22.10: Calling a Function from Another Function
  106. 22.1: Why do all this
  107. 22.2: The 'def' statement
  108. 22.3: Writing vs. calling
  109. 22.4: Naming arguments
  110. 22.5: Passing Aggregate Data to Functions
  111. 22.6: Returning Text
  112. 22.7: Returning True or False
  113. 22.8: Multiple Return Statements
  114. 22.9: Returning Nothing At All
  115. 23: Functions (2 of 2)
  116. 24: Recoding and Transforming
  117. 24.1: Recoding with Simple Operations
  118. 24.2: Transforming with Simple Operations
  119. 24.3: More Complex Transformations
  120. 25: Machine Learning - Concepts
  121. 25.1: Data mining vs. Machine learning
  122. 25.2: Deductive vs. Inductive reasoning
  123. 25.3: Supervised vs. Unsupervised Learning
  124. 26: Classification - Concepts
  125. 26.1 Labeled and Unlabeled examples
  126. 26.2: Three Kinds of Examples
  127. 26.3: "The Prior"
  128. 27: Decision Trees (1 of 2)
  129. 27.1: A Working Example
  130. 27.2: Decision Trees
  131. 28: Decision Trees (2 of 2)
  132. 28.1: Decision Trees in Python
  133. 28.2: Decision Tree Induction
  134. 29: Evaluating a Classifier
  135. 29.1: What “Doing Well” Means
  136. 29.2: Calculating Accuracy in Python
  137. Back Matter
  138. Index
  139. Glossary
  140. Detailed Licensing