close
np運算總是不太熟
今天再做一個矩陣的二值化的時候找了好久才發現的資料順手記下來
np.random.seed(0) np.set_printoptions(precision=3) a = np.random.rand(4, 4) threshold, upper, lower = 0.5, 1, 0 A現在是: array([[ 0.02 , 0.833, 0.778, 0.87 ], [ 0.979, 0.799, 0.461, 0.781], [ 0.118, 0.64 , 0.143, 0.945], [ 0.522, 0.415, 0.265, 0.774]]) 現在我可以激發這兩種表達: a[a>threshold] = upper a[a<=threshold] = lower 實現我想要的: array([[ 0., 1., 1., 1.], [ 1., 1., 0., 1.], [ 0., 1., 0., 1.], [ 1., 0., 0., 1.]]) 但是,有沒有一種方法可以只用一個表達就可以做到這一點呢? 最佳答案 我們可以考慮: np.where(a>threshold, upper, lower) Out[6]: array([[0, 1, 1, 1], [1, 1, 0, 1], [0, 1, 0, 1], [1, 0, 0, 1]])
文章標籤
全站熱搜
留言列表