我具有形式的Python:檢查陣列的列是邊界內,如果沒有邊界
a = np.array([[1,2],[3,4],[5,6]])
陣列內選擇一個隨機數,並且我有一個「結構域」或邊界,而這又是形式
b = np.array([[0, 4], [3,7]])
的陣列基本上我想檢查a[:,0]
是b
的第一行內並且a[:,1]
是b
第二行內。例如,在這個例子中a[:,0]=[1,3,5]
,我們可以看到,他們所有的工作,除了5是大於4.同樣a[:,1] = [2,4,6]
,所以我們看到,2,因爲2 < 3.
所以基本上我想0 <= a[:,0] <= 4
和3 <= a[:,1]<=7
失敗。當一個數字超出這個界限時,我想基本上用邊界內的一個隨機數代替它。
我嘗試
a[:,0][~np.logical_and(b[0][0] <= a[:,0], a[:,0] <= b[0][1])] = np.random.uniform(b[0][0], b[0][1])
a[:,1][~np.logical_and(b[1][0] <= a[:,1], a[:,1] <= b[1][1])] = np.random.uniform(b[1][0], b[1][1])
是否有更快/更好的辦法?
是'了'總是COLS排序?另外,是預期的o/p:'[[1,3],[3,4],[4,6]]? – Divakar
不是,應該是隨機的 –
什麼是o/p?輸出? –