Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit be0ddca

Browse files
committed
Remove mlab.rec_join
1 parent 6de5073 commit be0ddca

3 files changed

Lines changed: 2 additions & 143 deletions

File tree

doc/api/next_api_changes/2018-09-18-DS.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ in Matplotlib 2.2 has been removed. See below for a list:
4141
- `mlab.inside_poly`
4242
- `mlab.rec2csv` (use numpy.recarray.tofile instead)
4343
- `mlab.rec2text` (use numpy.recarray.tofile instead)
44+
- `mlab.rec_join`
4445
- `mlab.recs_join`
4546
- `mlab.csvformat_factory`
4647
- `mlab.get_formatd`

lib/matplotlib/mlab.py

Lines changed: 0 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -1679,148 +1679,6 @@ def rec_summarize(r, summaryfuncs):
16791679
return np.rec.fromarrays(arrays, names=names)
16801680

16811681

1682-
@cbook.deprecated("2.2")
1683-
def rec_join(key, r1, r2, jointype='inner', defaults=None, r1postfix='1',
1684-
r2postfix='2'):
1685-
"""
1686-
Join record arrays *r1* and *r2* on *key*; *key* is a tuple of
1687-
field names -- if *key* is a string it is assumed to be a single
1688-
attribute name. If *r1* and *r2* have equal values on all the keys
1689-
in the *key* tuple, then their fields will be merged into a new
1690-
record array containing the intersection of the fields of *r1* and
1691-
*r2*.
1692-
1693-
*r1* (also *r2*) must not have any duplicate keys.
1694-
1695-
The *jointype* keyword can be 'inner', 'outer', 'leftouter'. To
1696-
do a rightouter join just reverse *r1* and *r2*.
1697-
1698-
The *defaults* keyword is a dictionary filled with
1699-
``{column_name:default_value}`` pairs.
1700-
1701-
The keywords *r1postfix* and *r2postfix* are postfixed to column names
1702-
(other than keys) that are both in *r1* and *r2*.
1703-
"""
1704-
1705-
if isinstance(key, str):
1706-
key = (key, )
1707-
1708-
for name in key:
1709-
if name not in r1.dtype.names:
1710-
raise ValueError('r1 does not have key field %s' % name)
1711-
if name not in r2.dtype.names:
1712-
raise ValueError('r2 does not have key field %s' % name)
1713-
1714-
def makekey(row):
1715-
return tuple([row[name] for name in key])
1716-
1717-
r1d = {makekey(row): i for i, row in enumerate(r1)}
1718-
r2d = {makekey(row): i for i, row in enumerate(r2)}
1719-
1720-
r1keys = set(r1d)
1721-
r2keys = set(r2d)
1722-
1723-
common_keys = r1keys & r2keys
1724-
1725-
r1ind = np.array([r1d[k] for k in common_keys])
1726-
r2ind = np.array([r2d[k] for k in common_keys])
1727-
1728-
common_len = len(common_keys)
1729-
left_len = right_len = 0
1730-
if jointype == "outer" or jointype == "leftouter":
1731-
left_keys = r1keys.difference(r2keys)
1732-
left_ind = np.array([r1d[k] for k in left_keys])
1733-
left_len = len(left_ind)
1734-
if jointype == "outer":
1735-
right_keys = r2keys.difference(r1keys)
1736-
right_ind = np.array([r2d[k] for k in right_keys])
1737-
right_len = len(right_ind)
1738-
1739-
def key_desc(name):
1740-
'''
1741-
if name is a string key, use the larger size of r1 or r2 before
1742-
merging
1743-
'''
1744-
dt1 = r1.dtype[name]
1745-
if dt1.type != np.string_:
1746-
return (name, dt1.descr[0][1])
1747-
1748-
dt2 = r2.dtype[name]
1749-
if dt1 != dt2:
1750-
raise ValueError("The '{}' fields in arrays 'r1' and 'r2' must "
1751-
"have the same dtype".format(name))
1752-
if dt1.num > dt2.num:
1753-
return (name, dt1.descr[0][1])
1754-
else:
1755-
return (name, dt2.descr[0][1])
1756-
1757-
keydesc = [key_desc(name) for name in key]
1758-
1759-
def mapped_r1field(name):
1760-
"""
1761-
The column name in *newrec* that corresponds to the column in *r1*.
1762-
"""
1763-
if name in key or name not in r2.dtype.names:
1764-
return name
1765-
else:
1766-
return name + r1postfix
1767-
1768-
def mapped_r2field(name):
1769-
"""
1770-
The column name in *newrec* that corresponds to the column in *r2*.
1771-
"""
1772-
if name in key or name not in r1.dtype.names:
1773-
return name
1774-
else:
1775-
return name + r2postfix
1776-
1777-
r1desc = [(mapped_r1field(desc[0]), desc[1]) for desc in r1.dtype.descr
1778-
if desc[0] not in key]
1779-
r2desc = [(mapped_r2field(desc[0]), desc[1]) for desc in r2.dtype.descr
1780-
if desc[0] not in key]
1781-
all_dtypes = keydesc + r1desc + r2desc
1782-
newdtype = np.dtype(all_dtypes)
1783-
newrec = np.recarray((common_len + left_len + right_len,), dtype=newdtype)
1784-
1785-
if defaults is not None:
1786-
for thiskey in defaults:
1787-
if thiskey not in newdtype.names:
1788-
warnings.warn('rec_join defaults key="%s" not in new dtype '
1789-
'names "%s"' % (thiskey, newdtype.names))
1790-
1791-
for name in newdtype.names:
1792-
dt = newdtype[name]
1793-
if dt.kind in ('f', 'i'):
1794-
newrec[name] = 0
1795-
1796-
if jointype != 'inner' and defaults is not None:
1797-
# fill in the defaults enmasse
1798-
newrec_fields = list(newrec.dtype.fields)
1799-
for k, v in defaults.items():
1800-
if k in newrec_fields:
1801-
newrec[k] = v
1802-
1803-
for field in r1.dtype.names:
1804-
newfield = mapped_r1field(field)
1805-
if common_len:
1806-
newrec[newfield][:common_len] = r1[field][r1ind]
1807-
if (jointype == "outer" or jointype == "leftouter") and left_len:
1808-
newrec[newfield][common_len:(common_len+left_len)] = (
1809-
r1[field][left_ind]
1810-
)
1811-
1812-
for field in r2.dtype.names:
1813-
newfield = mapped_r2field(field)
1814-
if field not in key and common_len:
1815-
newrec[newfield][:common_len] = r2[field][r2ind]
1816-
if jointype == "outer" and right_len:
1817-
newrec[newfield][-right_len:] = r2[field][right_ind]
1818-
1819-
newrec.sort(order=key)
1820-
1821-
return newrec
1822-
1823-
18241682
@cbook.deprecated("2.2")
18251683
def csv2rec(fname, comments='#', skiprows=0, checkrows=0, delimiter=',',
18261684
converterd=None, names=None, missing='', missingd=None,

lib/matplotlib/pylab.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@
235235
frange,
236236
identity, ispower2, isvector, l1norm,
237237
l2norm, log2, movavg, norm_flat,
238-
rec_append_fields, rec_drop_fields, rec_join, rms_flat,
238+
rec_append_fields, rec_drop_fields, rms_flat,
239239
window_hanning, window_none)
240240

241241
from matplotlib import cbook, mlab, pyplot as plt

0 commit comments

Comments
 (0)