如何迭代n維的numpy陣列並創建一個類似形狀的新陣列。在n維numpy陣列上迭代時創建新陣列
例如用於輸入:
import numpy as np
arr = np.array([[1,2,3],
[4,5,6],
[7,8,9],
[0,0,0]])
alpha = 3.
median = np.median(arr)
我想建立的相同(4,3)的新陣列設置爲1的隨機條件標誌。 例如
flag = (arr[i,j] > median - alpha) or (arr[i,j] < median + alpha)
我將與2解決這個for語句
flags = arr * 0
for i in range(arr.shape[0]):
for j in range(arr.shape[1]):
flags[i,j] = (arr[i,j] > median - alpha) or (arr[i,j] < median + alpha)
是否有一個更簡單,更高效的Python的的方式來解決這個問題的方法嗎?該解決方案理想情況下也適用於n維陣列(1,2,... n維)
嗯,現在你正在生成'True'標誌,除非'arr [i,j] == median * alpha'。那是你要的嗎? –
的確,這只是一個例子。我所問的是迭代過程。我會更新條件,使之更有意義 –