【发布时间】:2017-10-18 20:06:01
【问题描述】:
如何遍历 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)
有没有办法以更简单、更有效的 pythonic 方式解决这个问题?理想情况下,该解决方案也适用于 n 维数组(1,2,... n 维)
【问题讨论】:
-
嗯,现在你正在生成
True标志,除非arr[i,j] == median * alpha。这就是你想要的吗? -
没错,这只是一个例子。我要问的是迭代过程。我将更新条件以使其更有意义