【发布时间】:2018-07-08 12:30:49
【问题描述】:
我有三个形状数组:
A = a = np.random.exponential(1, [10, 1000000]) # of shape (10, 1000000)
B = a = np.random.exponential(1, [10, 1000000]) # of shape (10, 1000000)
我计算了另一个数组 IND[ ],如下所示。 IND[ ] 的每个元素都是 A 的最大元素的索引(一列中每 10 个值的最大值),
IND = np.argmax(snr_sr, axis=0) # of shape (1000000,)
我想计算另一个数组 C,其中包含由 IND[ ] 的值指定的第 # 行 A 和 B 的元素最小值。因此,C 数组的形状应为 (1, 1000000)。我想避免 for 循环。我尝试了以下方法,但 C 的值不正确。
for j in range(0, A.shape[1]):
m = ind[j]
C = minimum(A[m,:], B[m,:]) # return 1x1000000 array
抱歉,由于数组很大,无法发布。你可以采取任何 相同形状的数组。
第一次编辑: 有人为我提供了正确答案,但他删除了它(不知道为什么?) 无论如何,我在他删除之前复制了答案。请再次发布,以便我标记它是正确的。 (对他来说:为了简单起见,他采用了 1,100 个数组)。
【问题讨论】:
-
你找到了 argmax 但没有找到 argmin?
-
首先逐行计算A和B的最小值并将其存储在数组中;然后使用
ind索引该数组。 -
您能否提供 2 个包含 5 个元素的数组并向我们展示您需要的预期输出?
标签: python python-3.x numpy array-broadcasting numpy-ndarray