【发布时间】:2020-09-16 01:36:24
【问题描述】:
假设你有两个 numpy 矩阵:
import numpy as np
n = 800
m = 16
A = np.zeros((n, 4)) #np.random.rand(n,4) if you wish
B = np.zeros(m) #np.random.rand(m) if you wish
在我的代码中,我需要将 B 中找到的每个值减去 A 的所有值,然后计算该平方并获得为我提供该新矩阵最小值的索引。因此,我将有 m 个最小值。从这些中,我需要最低限度。为此,我现在使用这样的循环:
min_C = np.zeros(m)
for j in range(m):
C = A[:,2]-B[j]
C = C*C
min_C[j] = np.where(C == np.amin(C))[0][0]
所以我对每个 j 都有一个最小值。然后,我做 min_C 的最小值。我可以避免这个循环以获得绝对最小值吗?如果可能的话,我现在无法想象如何编码。这只是为了提高我的代码的效率,我需要它,因为这个计算是用不同的 A 和 B 完成了很多次,当然。
【问题讨论】:
标签: python performance numpy loops