hahadsg's note

Follow me on GitHub

遇到的问题

  • apply_along_axis产生的类型会以第一行为准
# apply_along_axis产生的类型会以第一行为准
In [3]: a
Out[3]: [['a', 'b'], ['cc', 'dd']]

In [7]: np.apply_along_axis(lambda x: '.'.join(x), 1, a)
Out[7]: 
array(['a.b', 'cc.'], 
      dtype='<U3')
  • np.var和np.cov的方差计算方式不同
In [3]: a = np.array([[1,2,3], [2,3,4]])

# 平方误差和
In [4]: ((a[0] - a[0].mean()) ** 2).sum()
Out[4]: 2.0

# 平方误差和/n
In [5]: np.var(a[0])
Out[5]: 0.66666666666666663

# 平方误差和/(n-1)
In [6]: np.cov(a)
Out[6]: 
array([[ 1.,  1.],
       [ 1.,  1.]])

技巧

One-Hot

>>> a = np.array([1, 0, 3])
>>> b = np.zeros((3, 4))
>>> b[np.arange(3), a] = 1
>>> b
array([[ 0.,  1.,  0.,  0.],
       [ 1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.]])