NumPy ndarray 用法

官方地址:

NumPy ndarray 初始化#

1
2
3
4
5
6
7
import numpy as np
rsize, csize = (3, 3)
np.zeros((rsize, csize)) # filled with zeros
np.ones((rsize, csize)) # filled with ones
np.empty((rsize, csize)) # without initializing entries
np.full((rsize, csize), np.inf) # filled with fill_value(np.inf).
np.array([(1,1,1),(2,2,2), (3,3,3)]).T # commonly used

排序#

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
X = np.array([3,2,4,1,5])
# Return a sorted copy of an array.
np.sort(X)
# Returns the indices that would sort an array.
np.argsort(X)

# Sort an array, in-place.
a = np.array([[1,4], [3,1]])
a.sort(axis=1)
a.sort(axis=0)

数值计算#

协方差/Pearson相关系数矩阵#

给定 $N$ 维样本集合 $(\mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_N)^T$

  1. 方差 $\sigma=(\sigma_1,\sigma_2,\cdots,\sigma_N)^T$
  2. 协方差矩阵 $\Sigma$
    $$
    \begin{align*}
    \Sigma_{ij}=\mathrm{cov}(\mathbf{x}_i,\mathbf{x}_j)=E[(\mathbf{x}_i-\bar{\mathbf{x}}_i)(\mathbf{x}_j-\bar{\mathbf{x}}j)^T]
    \end{align*}
    $$
    其中,$\rho_i\equiv\Sigma
    {ii}$, 表示第 $i$ 维特征的方差。
  3. Pearson 相关系数矩阵 $R$
    $$
    \begin{align*}
    R_{ij}=\frac{\Sigma_{ij}}{\sqrt{\rho_{i}\rho_{j}}},\quad R_{ij}\in [-1, 1]
    \end{align*}
    $$
    任意两个向量的Pearson 相关系数,实际上就等价于先对两个向量分别进行 中心化,然后对中心化之后的向量求 余弦(Cosine)相似度.
1
2
3
4
5
6
import numpy as np
X = np.array([(0,0,0), (2,0,0), (2,0,1), (1,2,0)]).T
# Estimate a covariance matrix, given data and weights.
cov = np.cov(X)
# Return Pearson product-moment correlation coefficients.
cor = np.corrcoef(X)
1
2
3
4
5
# 根据协方差计算Pearson 相关系数矩阵
def _corrcoef(X):
cov = np.cov(X)
d = np.sqrt(np.diag(cov))
return cov / d[:, None] / d[None, :]

References#

用真金白银的方式为你想要的世界投票吧!