In [1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from pandas import DataFrame, Series
In [2]:
arr = np.arange(10)
np.add.reduce(arr)
Out[2]:
In [3]:
arr.sum()
Out[3]:
In [5]:
from numpy.random import randn
arr = randn(5, 5)
arr[::2]
Out[5]:
In [6]:
arr[::2].sort(1) # 对部分行进行排序
arr[:, :-1] < arr[:, 1:]
Out[6]:
In [7]:
np.logical_and.reduce(arr[:, :-1] < arr[:, 1:], axis=1)
Out[7]:
In [8]:
np.all(arr[:, :-1] < arr[:, 1:], axis=1)
Out[8]:
In [9]:
arr = np.arange(15).reshape((3, 5))
np.add.accumulate(arr, axis=1)
Out[9]:
In [10]:
arr = np.arange(3).repeat([1, 2, 2])
arr
Out[10]:
In [11]:
np.multiply.outer(arr, np.arange(5))
Out[11]:
In [13]:
result = np.subtract.outer(randn(3, 4), randn(5))
result.shape
Out[13]:
In [15]:
np.subtract.outer(np.arange(5), np.arange(3))
Out[15]:
In [16]:
arr = np.arange(10)
np.add.reduceat(arr, [0, 5, 8])
Out[16]:
In [17]:
arr = np.multiply.outer(np.arange(4), np.arange(5))
np.add.reduceat(arr, [0, 2, 4], axis=1)
Out[17]:
In [18]:
def add_elements(x, y):
return x + y
add_them = np.frompyfunc(add_elements, 2, 1)
add_them(np.arange(8), np.arange(8))
Out[18]:
In [19]:
add_them = np.vectorize(add_elements, otypes=[np.float64])
add_them(np.arange(8), np.arange(8))
Out[19]:
In [20]:
arr = randn(10000)
%timeit add_them(arr, arr)
In [21]:
%timeit np.add(arr, arr)
In [22]:
dtype = [('x', np.float64), ('y', np.int32)]
sarr = np.array([(1.5, 6), (np.pi, -2)], dtype=dtype)
sarr
Out[22]:
In [23]:
sarr[0]['y']
Out[23]:
In [24]:
sarr['x']
Out[24]:
In [25]:
dtype = [('x', np.int64, 3), ('y', np.int32)]
arr = np.zeros(4, dtype=dtype)
arr
Out[25]:
In [26]:
arr[0]['x']
Out[26]:
In [27]:
arr['x']
Out[27]:
In [28]:
dtype = [('x', [('a', 'f8'), ('b', 'f4')]), ('y', np.int32)]
data = np.array([((1, 2), 5), ((3, 4), 6)], dtype=dtype)
data['x']
Out[28]:
In [29]:
data['y']
Out[29]: