如何迭代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'。那是你要的吗? –
的确,这只是一个例子。我所问的是迭代过程。我会更新条件,使之更有意义 –