diff --git a/datascience/tables.py b/datascience/tables.py
index 1c57e91e1..f928475cc 100644
--- a/datascience/tables.py
+++ b/datascience/tables.py
@@ -126,8 +126,9 @@ def column_index(self, column_label):
return self.column_labels.index(column_label)
def apply(self, fn, column_label):
- """Apply a function to each element of a column."""
- return [fn(v) for v in self[column_label]]
+ """Returns an array where fn is applied to each element
+ of a specified column."""
+ return np.array([fn(v) for v in self[column_label]])
##########
# Modify #
@@ -458,6 +459,59 @@ def percentile(self, p):
percentiles = [percentile(p, self[column_name]) for column_name in self]
return Table(percentiles, self.column_labels)
+ def sample(self, k=None, with_replacement=False, weights=None):
+ """Returns a new table where k rows are randomly sampled from the
+ original table.
+
+ Kwargs:
+ k (int or None): If None (default), all the rows in the table are
+ sampled. If an integer, k rows from the original table are
+ sampled.
+
+ with_replacement (bool): If False (default), samples the rows
+ without replacement. If True, samples the rows with replacement.
+
+ weights (list/array or None): If None (default), samples the rows
+ using a uniform random distribution. If a list/array is passed
+ in, it must be the same length as the number of rows in the
+ table and the values must sum to 1. The rows will then be
+ sampled according the the probability distribution in
+ ``weights``.
+
+ Returns:
+ A new instance of ``Table``.
+
+ >>> foo_table
+ job | wage
+ a | 10
+ b | 20
+ c | 15
+ d | 8
+
+ >>> foo_table.sample()
+ job | wage
+ b | 20
+ c | 15
+ a | 10
+ d | 8
+
+ >>> foo_table.sample(k = 2)
+ job | wage
+ b | 20
+ c | 15
+
+ >>> foo_table.sample(k = 2, with_replacement = True,
+ ... weights = [0.5, 0.5, 0, 0])
+ job | wage
+ a | 10
+ a | 10
+
+ """
+ n = self.num_rows
+ rows = [self.rows[index] for index in
+ np.random.choice(n, k or n, replace=with_replacement, p=weights)]
+ return Table.from_rows(rows, self.column_labels)
+
##################
# Export/Display #
##################
@@ -540,19 +594,6 @@ def index_by(self, column_or_label):
index.setdefault(key, []).append(row)
return index
- def _sample(self, k, with_replacement, weights):
- """Returns list of sampled rows"""
- n = self.num_rows
- indices = np.random.choice(
- n, k or n, replace=with_replacement, p=weights)
- return [self.rows[i] for i in indices]
-
- def sample(self, k=None, with_replacement=False, weights=None):
- """Returns a new table"""
- return Table.from_rows(
- self._sample(k, with_replacement, weights),
- self.column_labels)
-
#############
# Visualize #
#############
@@ -611,7 +652,7 @@ def barh(self, column_for_categories, overlay=False, **vargs):
(instead of the default behavior of creating n - 1 charts).
Also adds a legend that matches each bar color to its column.
- vargs: Additional arguments that get passed into :func:plt.barh.
+ vargs: Additional arguments that get passed into `plt.barh`.
See http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.barh
for additional arguments that can be passed into vargs. These
include: `linewidth`, `xerr`, `yerr`, and `log`, to name a few.
diff --git a/docs/_autosummary/datascience.tables.Table.sample.rst b/docs/_autosummary/datascience.tables.Table.sample.rst
new file mode 100644
index 000000000..5ea19918c
--- /dev/null
+++ b/docs/_autosummary/datascience.tables.Table.sample.rst
@@ -0,0 +1,6 @@
+datascience.tables.Table.sample
+===============================
+
+.. currentmodule:: datascience.tables
+
+.. automethod:: Table.sample
\ No newline at end of file
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.__init__.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.__init__.doctree
index 4ef5f105b..942971ca0 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.__init__.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.__init__.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.__len__.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.__len__.doctree
index 488b3c0e6..491967ce5 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.__len__.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.__len__.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.append.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.append.doctree
index 00cc06f7d..b10846dd0 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.append.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.append.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.apply.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.apply.doctree
index 7ca9c70d4..e5f1b3ef6 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.apply.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.apply.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.as_html.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.as_html.doctree
index d8f085baa..911bce123 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.as_html.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.as_html.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.as_text.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.as_text.doctree
index b1d739d7b..f0a862e9a 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.as_text.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.as_text.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.barh.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.barh.doctree
index 2f7ea7671..e519bc103 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.barh.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.barh.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.column_index.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.column_index.doctree
index ddf35ab20..5c6b3da04 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.column_index.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.column_index.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.column_labels.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.column_labels.doctree
index 9457fad5d..5e0fdae1d 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.column_labels.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.column_labels.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.columns.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.columns.doctree
index 98a944878..0c76558fd 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.columns.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.columns.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.copy.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.copy.doctree
index c8fb5b25d..e8b030f8b 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.copy.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.copy.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.doctree
index 5c9c089c9..6ab966907 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.drop.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.drop.doctree
index 25a294a0c..82e6cc933 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.drop.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.drop.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.from_records.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.from_records.doctree
index af41f23d1..b3764c008 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.from_records.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.from_records.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.from_rows.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.from_rows.doctree
index acca9ded9..104946a91 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.from_rows.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.from_rows.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.group.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.group.doctree
index f68a26496..ad7ac2470 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.group.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.group.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.groups.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.groups.doctree
index a60931132..a5fb975af 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.groups.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.groups.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.hist.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.hist.doctree
index 231938500..4a9a3ba2f 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.hist.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.hist.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.index_by.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.index_by.doctree
index 39aeb29aa..fd8e7ef42 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.index_by.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.index_by.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.join.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.join.doctree
index e1a2f1a9b..46fde00a5 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.join.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.join.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.matrix.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.matrix.doctree
index a51195503..7082eded3 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.matrix.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.matrix.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.move_to_end.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.move_to_end.doctree
index e71657f56..a17b9c386 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.move_to_end.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.move_to_end.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.move_to_start.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.move_to_start.doctree
index 8d4536518..704faa485 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.move_to_start.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.move_to_start.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.num_rows.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.num_rows.doctree
index 3468ee23c..04556fa4b 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.num_rows.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.num_rows.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.percentile.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.percentile.doctree
index 9c890f9fa..a912cb620 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.percentile.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.percentile.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.pivot.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.pivot.doctree
index db11d463a..3ba41e525 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.pivot.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.pivot.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.pivot_hist.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.pivot_hist.doctree
index b03ccf1ba..f13a8669b 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.pivot_hist.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.pivot_hist.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.plot.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.plot.doctree
index b2d9aee43..dc694b460 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.plot.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.plot.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.points.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.points.doctree
index 309a907cf..0c685e4c2 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.points.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.points.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.read_table.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.read_table.doctree
index 3f505bea9..6dea17088 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.read_table.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.read_table.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.relabel.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.relabel.doctree
index 279934772..d13f46a7d 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.relabel.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.relabel.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.rows.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.rows.doctree
index 542069878..c69983604 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.rows.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.rows.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.sample.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.sample.doctree
new file mode 100644
index 000000000..26e48cf0e
Binary files /dev/null and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.sample.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.select.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.select.doctree
index 5343fd2ec..1e8eaf0aa 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.select.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.select.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.set_format.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.set_format.doctree
index 073f8f924..db87f35ee 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.set_format.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.set_format.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.show.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.show.doctree
index 5a3db2243..df6a4143a 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.show.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.show.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.sort.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.sort.doctree
index 2105574d9..5eda8a2dd 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.sort.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.sort.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.stack.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.stack.doctree
index 2634384b0..59a56b6df 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.stack.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.stack.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.stats.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.stats.doctree
index cd3215e7c..ca70140b0 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.stats.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.stats.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.take.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.take.doctree
index 8f4fded64..45a0dd8d0 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.take.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.take.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.Table.where.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.Table.where.doctree
index 7afa07b48..0ff3e3b15 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.Table.where.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.Table.where.doctree differ
diff --git a/docs/_build/doctrees/_autosummary/datascience.tables.doctree b/docs/_build/doctrees/_autosummary/datascience.tables.doctree
index c39947b88..435cd1240 100644
Binary files a/docs/_build/doctrees/_autosummary/datascience.tables.doctree and b/docs/_build/doctrees/_autosummary/datascience.tables.doctree differ
diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle
index 27fbb67f1..d55e8c102 100644
Binary files a/docs/_build/doctrees/environment.pickle and b/docs/_build/doctrees/environment.pickle differ
diff --git a/docs/_build/doctrees/formats.doctree b/docs/_build/doctrees/formats.doctree
index a75625a9e..c2a2e6b6b 100644
Binary files a/docs/_build/doctrees/formats.doctree and b/docs/_build/doctrees/formats.doctree differ
diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree
index 8810db650..01e16adcb 100644
Binary files a/docs/_build/doctrees/index.doctree and b/docs/_build/doctrees/index.doctree differ
diff --git a/docs/_build/doctrees/maps.doctree b/docs/_build/doctrees/maps.doctree
index 3875dfefc..5d09f8c91 100644
Binary files a/docs/_build/doctrees/maps.doctree and b/docs/_build/doctrees/maps.doctree differ
diff --git a/docs/_build/doctrees/tables.doctree b/docs/_build/doctrees/tables.doctree
index efdc66856..f6b015c61 100644
Binary files a/docs/_build/doctrees/tables.doctree and b/docs/_build/doctrees/tables.doctree differ
diff --git a/docs/_build/doctrees/tutorial.doctree b/docs/_build/doctrees/tutorial.doctree
index 47672b85c..e8c9865d0 100644
Binary files a/docs/_build/doctrees/tutorial.doctree and b/docs/_build/doctrees/tutorial.doctree differ
diff --git a/docs/_build/doctrees/util.doctree b/docs/_build/doctrees/util.doctree
index 28bbfb97d..9b3bae806 100644
Binary files a/docs/_build/doctrees/util.doctree and b/docs/_build/doctrees/util.doctree differ
diff --git a/docs/_build/html/_autosummary/datascience.tables.Table.__init__.html b/docs/_build/html/_autosummary/datascience.tables.Table.__init__.html
index ea4193908..35a2e10ef 100644
--- a/docs/_build/html/_autosummary/datascience.tables.Table.__init__.html
+++ b/docs/_build/html/_autosummary/datascience.tables.Table.__init__.html
@@ -23,10 +23,7 @@
-
-
-
-
+