Kernel: Python 3
NumPy进阶
In [1]:
In [2]:
NumPy中的函数
通用一元函数
In [3]:
Out[3]:
array([ 1., 2., 3., inf, nan, -inf, nan, 5.])
In [4]:
Out[4]:
dtype('float64')
In [5]:
Out[5]:
array([False, False, False, False, True, False, True, False])
In [6]:
Out[6]:
array([ 1., 2., 3., inf, -inf, 5.])
In [7]:
Out[7]:
array([ True, True, True, False, False, False, False, True])
In [8]:
Out[8]:
array([1., 2., 3., 5.])
In [9]:
In [10]:
Out[10]:
通用二元函数
In [11]:
In [12]:
Out[12]:
array([False, False])
In [13]:
Out[13]:
False
In [14]:
Out[14]:
True
In [15]:
In [16]:
Out[16]:
array([2, 4, 6])
In [17]:
Out[17]:
array([ 1, 2, 3, 4, 5, 6, 8, 10])
In [18]:
Out[18]:
array([1, 3, 5])
In [19]:
Out[19]:
array([ 1, 3, 5, 8, 10])
In [20]:
Out[20]:
array([False, True, False, True, False, True])
In [21]:
In [22]:
Out[22]:
0.15789473684210525
In [23]:
Out[23]:
0.4666666666666667
In [24]:
Out[24]:
array(['巴沙鱼', '手机支架', '沙拉酱', '键盘'], dtype='<U4')
In [25]:
Out[25]:
array(['沐浴露', '牛奶', '磨牙棒', '维C泡腾片'], dtype='<U5')
In [26]:
In [27]:
Out[27]:
0.7302967433402215
In [28]:
Out[28]:
43.08872313536282
In [29]:
Out[29]:
13.967881205170064
其他常用函数
In [30]:
Out[30]:
array([1, 2, 3, 1, 1, 2, 2, 4, 5, 7, 3, 6, 6])
In [31]:
Out[31]:
array([1, 2, 3, 4, 5, 6, 7])
In [32]:
In [33]:
Out[33]:
array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4],
[5, 5, 5],
[6, 6, 6]])
In [34]:
Out[34]:
array([[1, 1, 1, 4, 4, 4],
[2, 2, 2, 5, 5, 5],
[3, 3, 3, 6, 6, 6]])
In [35]:
Out[35]:
array([[1, 1, 1, 4, 4, 4],
[2, 2, 2, 5, 5, 5],
[3, 3, 3, 6, 6, 6]])
In [36]:
Out[36]:
array([[[1, 1, 1],
[2, 2, 2],
[3, 3, 3]],
[[4, 4, 4],
[5, 5, 5],
[6, 6, 6]]])
In [37]:
Out[37]:
array([[[1, 1, 1],
[4, 4, 4]],
[[2, 2, 2],
[5, 5, 5]],
[[3, 3, 3],
[6, 6, 6]]])
In [38]:
Out[38]:
[array([[1, 1, 1],
[2, 2, 2]]),
array([[3, 3, 3],
[4, 4, 4]]),
array([[5, 5, 5],
[6, 6, 6]])]
In [39]:
Out[39]:
array([ 1, 2, 3, 1, 1, 2, 2, 4, 5, 7, 3, 6, 6, 10, 11, 12])
In [40]:
Out[40]:
array([ 1, 10, 20, 2, 3, 1, 1, 2, 2, 4, 5, 7, 3, 6, 6])
In [41]:
Out[41]:
array([ 6, 26, 44, 1, 77, 26, 15, 43, 93, 72])
In [42]:
Out[42]:
array([ 6, 26, 44, 1, 26, 15, 43])
In [43]:
Out[43]:
array([ 60, 260, 100, 10, 7, 260, 150, 100, 9, 7])
In [44]:
Out[44]:
array([ 60, 260, 440, 10, 7, 260, 150, 430, 9, 7])
In [45]:
Out[45]:
array([ 6, 26, 44, 1, 77, 26, 15, 43, 93, 72])
In [46]:
Out[46]:
array([93, 72, 6, 26, 44, 1, 77, 26, 15, 43])
In [47]:
Out[47]:
array([44, 1, 77, 26, 15, 43, 93, 72, 6, 26])
In [48]:
Out[48]:
array([[6, 6, 1],
[1, 1, 2],
[2, 2, 3],
[3, 3, 4],
[4, 4, 5],
[5, 5, 6]])
In [49]:
Out[49]:
array([[5, 5, 5],
[6, 6, 6],
[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4]])
In [50]:
Out[50]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
In [51]:
Out[51]:
array([[4, 5, 6],
[7, 8, 9],
[1, 2, 3]])
In [52]:
Out[52]:
array([[3, 1, 2],
[6, 4, 5],
[9, 7, 8]])
In [53]:
Out[53]:
array([ 6, 33, 44, 88, 77, 33, 15, 88, 93, 72])
In [54]:
Out[54]:
array([ 6, 33, 44, 44, 99, 33, 15, 44, 99, 44])
In [55]:
Out[55]:
(750, 500, 3)
In [56]:
Out[56]:
<matplotlib.image.AxesImage at 0x14a0f7ac0>
In [57]:
Out[57]:
<matplotlib.image.AxesImage at 0x14a1667f0>
In [58]:
Out[58]:
<matplotlib.image.AxesImage at 0x14a1dafa0>
In [59]:
Out[59]:
<matplotlib.image.AxesImage at 0x14a24fdf0>
In [60]:
Out[60]:
<matplotlib.image.AxesImage at 0x14a2d3c70>
普通函数矢量化
In [61]:
In [62]:
Out[62]:
array([1, 2, 3, 4, 5, 6, 7, 8])
In [63]:
Out[63]:
array([ 1, 2, 6, 24, 120, 720, 5040, 40320])
In [64]:
Out[64]:
(array([24, 70, 79, 26, 41, 53, 56, 59, 72, 21]),
array([63, 56, 32, 59, 51, 60, 62, 58, 67, 59]))
In [65]:
Out[65]:
array([ 3, 14, 1, 1, 1, 1, 2, 1, 1, 1])
In [66]:
Out[66]:
array([ 504, 280, 2528, 1534, 2091, 3180, 1736, 3422, 4824, 1239])
广播机制
两个形状(shape属性)不一样的数组如果要做运算,要先通过广播机制使其形状一样才能运算。
如果要执行广播机制使得两个数组形状一样,需要满足以下两个条件其中一个:
两个数组后缘维度(shape属性从后往前看对应的部分)相同。
两个数组后缘维度不同,但是其中一方为1。
In [67]:
In [68]:
Out[68]:
array([[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
[4, 5, 6]])
In [69]:
In [70]:
Out[70]:
array([[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[7, 7, 7]])
In [71]:
In [72]:
Out[72]:
(3,)
In [73]:
Out[73]:
(3, 1)
In [74]:
Out[74]:
array([[4, 5, 6],
[3, 4, 5],
[2, 3, 4]])
矩阵
In [75]:
In [76]:
Out[76]:
(2, 3)
In [77]:
Out[77]:
(3, 2)
In [78]:
Out[78]:
array([[5, 1],
[4, 2]])
In [79]:
Out[79]:
array([[5, 1],
[4, 2]])
In [80]:
Out[80]:
array([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 8.]])
In [81]:
Out[81]:
3
In [82]:
Out[82]:
array([[-2.66666667, 2.66666667, -1. ],
[ 3.33333333, -4.33333333, 2. ],
[-1. , 2. , -1. ]])
In [83]:
In [84]:
In [85]:
Out[85]:
3
In [86]:
Out[86]:
3
In [87]:
Out[87]:
array([[1.],
[2.],
[3.]])
In [88]:
Out[88]:
array([[1.],
[2.],
[3.]])
补充 - 用scipy处理图像
In [89]:
Out[89]:
In [90]:
Out[90]:
多项式
In [91]:
Out[91]:
3
3 x + 2 x + 1
2
1 x + 2 x + 3
In [92]:
Out[92]:
3 2
3 x + 1 x + 4 x + 4
In [93]:
Out[93]:
5 4 3 2
3 x + 6 x + 11 x + 5 x + 8 x + 3
In [94]:
Out[94]:
11
In [95]:
Out[95]:
2
9 x + 2
In [96]:
Out[96]:
4 2
0.75 x + 1 x + 1 x
In [97]:
Out[97]:
2
1 x + 3 x + 2
[-2. -1.]
In [98]:
Out[98]:
numpy.poly1d
In [99]:
Out[99]:
1.0 + 2.0·x + 0.0·x² + 3.0·x³
In [100]:
Out[100]:
2.0 + 0.0·x + 9.0·x²
In [101]:
Out[101]:
0.0 + 1.0·x + 1.0·x² + 0.0·x³ + 0.75·x⁴
In [102]:
Out[102]:
3
最小二乘解
In [103]:
In [104]:
Out[104]:
In [105]:
Out[105]:
(ShapiroResult(statistic=0.9830237255502384, pvalue=0.6844559821829901),
ShapiroResult(statistic=0.9789829625124067, pvalue=0.5099101868610301))
In [106]:
Out[106]:
array([[1. , 0.93422273],
[0.93422273, 1. ]])
In [107]:
Out[107]:
PearsonRResult(statistic=0.9342227278473364, pvalue=3.9566343708624996e-23)
In [108]:
Out[108]:
50
In [109]:
Out[109]:
[67, 88, 28, 95, 96, 10, 70, 80, 84, 8, 19, 68, 1, 90, 39]
In [110]:
Out[110]:
[1, 8, 10]
[96, 95, 90, 88, 84]
In [111]:
In [112]:
Out[112]:
5937.0
In [113]:
Out[113]:
1987.0
In [114]:
Out[114]:
6645.33
回归模型:
损失函数:
In [115]:
In [116]:
Out[116]:
1120507.2896234244
808664.5200191085
443441.57239664154
408322.6807976254
394598.0903141962
394480.4982102699
394457.8332210129
393928.3764661801
393882.835806886
393829.0258808886
393817.59355663764
0.5068829877448287 -1209.315185532824
In [117]:
Out[117]:
In [118]:
In [119]:
Out[119]:
2237.49
In [120]:
Out[120]:
5278.79
将回归模型带入损失函数:
如何让取到最小值???
求偏导数,并令其等于0。
求解得到:
In [121]:
In [122]:
Out[122]:
(0.5079223873753402, -1227.104582703003)
In [123]:
Out[123]:
In [124]:
Out[124]:
array([ 5.07922387e-01, -1.22710458e+03])
In [125]:
Out[125]:
(-1.783556141649917e-05, 0.905493221908901, -3247.1511980120213)
In [126]:
Out[126]:
In [127]:
Out[127]:
array([-1.22710458e+03, 5.07922387e-01])