學習Build Machine learning with python中,有一段代碼,講的是Numpy中array的運算。
labels = data['target_names'][data['target']]
data['target_names'] 是一個array數組
data['target']同樣是一個數組。
這樣,就引出了對array的思考。
專門進行了一些實驗。array后面接數據,只能是整數或者bool類型的array。
比如:
a=np.array([1,2,3]) b=np.arran(['a','b','c','d','e']) a[b]
a[b]會報錯。
但是:
1 b[a]=array(['b', 'c', 'd'], 2 dtype='|S1')
所以,在最初的代碼中,我們labels得到的是一個重復的標簽。
對於布爾運算,如下:
1 c=np.array([False,False,False,True,True,True]) 2 d=np.array([1,2,3,4,5,6]) 3 d[c]=array([4, 5, 6]) 4 d[~c] = array([1, 2, 3])
由此,可以理解np.array中的運算是如何進行的。