Numpy

Numpy中的mask

numpy中矩陣選取子集或者以條件替換,用mask是一種很好的方法 簡單來說就是用bool類型的indice矩陣去選擇, 1 2 3 4 5 6 7 8 9 10 11 12 mask = np.ones(X.shape[ X[mask].shape mask.shape mask[indices[ mask.shape X[mask].shape X[~mask].shape ( ( ( ( ( 例如我們這裡用來選取全部點中KNN選取的點以及所有剩餘的點 1 2 3 4 5 6 7 from nbrs = NearestNeighbors( _,indices = nbrs.kneighbors(X) mask = np.ones(X.shape[ mask[indices[ plt.scatter(X[mask][:, plt.scatter(X[~mask][:, 帶條件選擇替換,比如我們需要將a矩陣內某條件的行置換為888剩餘置換為999,可以直接用mask或者再用where一步搞定: 1 2 3 4 5 …

Numpy中的mask Read More »

如何理解Pandas 和Numpy裡的axis

簡述一種如何直觀的理解Pandas 和Numpy裡面的axis參數的方法。 Numpy 和Pandas裡的sort、mean、drop等操作,不是分行或者列分別用一個method來定義,而是一個method裡面用戶指定axis來操作的,舉例來說: 我們先在如下是pandas裡按axis 0和1進行drop的操作示例,我們很容易看出,axis 0是按行drop,而axis 1是按列drop: 但是,mean操作呢? 容易看出,axis 0得出了每一列的均值,而axis 1得出了則是每一行的均值。那麼,在Numpy裡呢? 容易看出,axis為1的時候得出的是每行的sum,axis為0的時候得出了每列的sum。 由上面的例子,我們似乎可以看出,axis為1代表水平方向上的操作,axis為0代表垂直方向上的操作,比如axis為1的sum得出的就是每一行的和。 但是,在Pandas的Dataframe裡面,為什麼axis=1代表的是drop整個列呢?以下這個例子也可以說明一些情況: 聯繫這個視頻 0 is the row axis, and 1 is the column axis. When you drop with axis=1, that means drop a column. When you take the mean with axis=1, that means the operation should “move across” the column axis, which …

如何理解Pandas 和Numpy裡的axis Read More »