A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://nbviewer.ipython.org/github/pydata/pydata-book/blob/3rd-edition/appa.ipynb below:

Jupyter Notebook Viewer

  1. pydata-book
  2. appa.ipynb
Notebook

In [1]:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('figure', figsize=(10, 6))
PREVIOUS_MAX_ROWS = pd.options.display.max_rows
pd.options.display.max_columns = 20
pd.options.display.max_rows = 20
pd.options.display.max_colwidth = 80
np.set_printoptions(precision=4, suppress=True)

In [2]:

rng = np.random.default_rng(seed=12345)

In [4]:

np.ones((3, 4, 5), dtype=np.float64).strides

In [5]:

ints = np.ones(10, dtype=np.uint16)
floats = np.ones(10, dtype=np.float32)
np.issubdtype(ints.dtype, np.integer)
np.issubdtype(floats.dtype, np.floating)

In [7]:

np.issubdtype(ints.dtype, np.number)

In [8]:

arr = np.arange(8)
arr
arr.reshape((4, 2))

In [9]:

arr.reshape((4, 2)).reshape((2, 4))

In [10]:

arr = np.arange(15)
arr.reshape((5, -1))

In [11]:

other_arr = np.ones((3, 5))
other_arr.shape
arr.reshape(other_arr.shape)

In [12]:

arr = np.arange(15).reshape((5, 3))
arr
arr.ravel()

In [14]:

arr = np.arange(12).reshape((3, 4))
arr
arr.ravel()
arr.ravel('F')

In [15]:

arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
np.concatenate([arr1, arr2], axis=0)
np.concatenate([arr1, arr2], axis=1)

In [16]:

np.vstack((arr1, arr2))
np.hstack((arr1, arr2))

In [17]:

arr = rng.standard_normal((5, 2))
arr
first, second, third = np.split(arr, [1, 3])
first
second
third

In [18]:

arr = np.arange(6)
arr1 = arr.reshape((3, 2))
arr2 = rng.standard_normal((3, 2))
np.r_[arr1, arr2]
np.c_[np.r_[arr1, arr2], arr]

In [20]:

arr = np.arange(3)
arr
arr.repeat(3)

In [22]:

arr = rng.standard_normal((2, 2))
arr
arr.repeat(2, axis=0)

In [23]:

arr.repeat([2, 3], axis=0)
arr.repeat([2, 3], axis=1)

In [25]:

arr
np.tile(arr, (2, 1))
np.tile(arr, (3, 2))

In [26]:

arr = np.arange(10) * 100
inds = [7, 1, 2, 6]
arr[inds]

In [27]:

arr.take(inds)
arr.put(inds, 42)
arr
arr.put(inds, [40, 41, 42, 43])
arr

In [28]:

inds = [2, 0, 2, 1]
arr = rng.standard_normal((2, 4))
arr
arr.take(inds, axis=1)

In [29]:

arr = np.arange(5)
arr
arr * 4

In [30]:

arr = rng.standard_normal((4, 3))
arr.mean(0)
demeaned = arr - arr.mean(0)
demeaned
demeaned.mean(0)

In [31]:

arr
row_means = arr.mean(1)
row_means.shape
row_means.reshape((4, 1))
demeaned = arr - row_means.reshape((4, 1))
demeaned.mean(1)

In [33]:

arr - arr.mean(1).reshape((4, 1))

In [34]:

arr = np.zeros((4, 4))
arr_3d = arr[:, np.newaxis, :]
arr_3d.shape
arr_1d = rng.standard_normal(3)
arr_1d[:, np.newaxis]
arr_1d[np.newaxis, :]

In [35]:

arr = rng.standard_normal((3, 4, 5))
depth_means = arr.mean(2)
depth_means
depth_means.shape
demeaned = arr - depth_means[:, :, np.newaxis]
demeaned.mean(2)

In [36]:

arr = np.zeros((4, 3))
arr[:] = 5
arr

In [37]:

col = np.array([1.28, -0.42, 0.44, 1.6])
arr[:] = col[:, np.newaxis]
arr
arr[:2] = [[-1.37], [0.509]]
arr

In [38]:

arr = np.arange(10)
np.add.reduce(arr)
arr.sum()

In [39]:

my_rng = np.random.default_rng(12346)  # for reproducibility
arr = my_rng.standard_normal((5, 5))
arr
arr[::2].sort(1) # sort a few rows
arr[:, :-1] < arr[:, 1:]
np.logical_and.reduce(arr[:, :-1] < arr[:, 1:], axis=1)

In [40]:

arr = np.arange(15).reshape((3, 5))
np.add.accumulate(arr, axis=1)

In [41]:

arr = np.arange(3).repeat([1, 2, 2])
arr
np.multiply.outer(arr, np.arange(5))

In [42]:

x, y = rng.standard_normal((3, 4)), rng.standard_normal(5)
result = np.subtract.outer(x, y)
result.shape

In [43]:

arr = np.arange(10)
np.add.reduceat(arr, [0, 5, 8])

In [44]:

arr = np.multiply.outer(np.arange(4), np.arange(5))
arr
np.add.reduceat(arr, [0, 2, 4], axis=1)

In [45]:

def add_elements(x, y):
    return x + y
add_them = np.frompyfunc(add_elements, 2, 1)
add_them(np.arange(8), np.arange(8))

In [46]:

add_them = np.vectorize(add_elements, otypes=[np.float64])
add_them(np.arange(8), np.arange(8))

In [47]:

arr = rng.standard_normal(10000)
%timeit add_them(arr, arr)
%timeit np.add(arr, arr)

In [48]:

dtype = [('x', np.float64), ('y', np.int32)]
sarr = np.array([(1.5, 6), (np.pi, -2)], dtype=dtype)
sarr

In [51]:

dtype = [('x', np.int64, 3), ('y', np.int32)]
arr = np.zeros(4, dtype=dtype)
arr

In [54]:

dtype = [('x', [('a', 'f8'), ('b', 'f4')]), ('y', np.int32)]
data = np.array([((1, 2), 5), ((3, 4), 6)], dtype=dtype)
data['x']
data['y']
data['x']['a']

In [55]:

arr = rng.standard_normal(6)
arr.sort()
arr

In [56]:

arr = rng.standard_normal((3, 5))
arr
arr[:, 0].sort()  # Sort first column values in place
arr

In [57]:

arr = rng.standard_normal(5)
arr
np.sort(arr)
arr

In [58]:

arr = rng.standard_normal((3, 5))
arr
arr.sort(axis=1)
arr

In [60]:

values = np.array([5, 0, 1, 3, 2])
indexer = values.argsort()
indexer
values[indexer]

In [61]:

arr = rng.standard_normal((3, 5))
arr[0] = values
arr
arr[:, arr[0].argsort()]

In [62]:

first_name = np.array(['Bob', 'Jane', 'Steve', 'Bill', 'Barbara'])
last_name = np.array(['Jones', 'Arnold', 'Arnold', 'Jones', 'Walters'])
sorter = np.lexsort((first_name, last_name))
sorter
list(zip(last_name[sorter], first_name[sorter]))

In [63]:

values = np.array(['2:first', '2:second', '1:first', '1:second',
                   '1:third'])
key = np.array([2, 2, 1, 1, 1])
indexer = key.argsort(kind='mergesort')
indexer
values.take(indexer)

In [64]:

rng = np.random.default_rng(12345)
arr = rng.standard_normal(20)
arr
np.partition(arr, 3)

In [65]:

indices = np.argpartition(arr, 3)
indices
arr.take(indices)

In [66]:

arr = np.array([0, 1, 7, 12, 15])
arr.searchsorted(9)

In [67]:

arr.searchsorted([0, 8, 11, 16])

In [68]:

arr = np.array([0, 0, 0, 1, 1, 1, 1])
arr.searchsorted([0, 1])
arr.searchsorted([0, 1], side='right')

In [69]:

data = np.floor(rng.uniform(0, 10000, size=50))
bins = np.array([0, 100, 1000, 5000, 10000])
data

In [70]:

labels = bins.searchsorted(data)
labels

In [71]:

pd.Series(data).groupby(labels).mean()

In [72]:

import numpy as np

def mean_distance(x, y):
    nx = len(x)
    result = 0.0
    count = 0
    for i in range(nx):
        result += x[i] - y[i]
        count += 1
    return result / count

In [73]:

mmap = np.memmap('mymmap', dtype='float64', mode='w+',
                 shape=(10000, 10000))
mmap

In [75]:

section[:] = rng.standard_normal((5, 10000))
mmap.flush()
mmap
del mmap

In [76]:

mmap = np.memmap('mymmap', dtype='float64', shape=(10000, 10000))
mmap

In [78]:

arr_c = np.ones((100, 10000), order='C')
arr_f = np.ones((100, 10000), order='F')
arr_c.flags
arr_f.flags
arr_f.flags.f_contiguous

In [79]:

%timeit arr_c.sum(1)
%timeit arr_f.sum(1)

In [81]:

arr_c[:50].flags.contiguous
arr_c[:, :50].flags

In [84]:

pd.options.display.max_rows = PREVIOUS_MAX_ROWS

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4