Можно ли векторизовать / оптимизировать следующий цикл?
In [33]: a = np.arange(10000 * 700).reshape([10000, 700])
In [34]: b = np.arange(1000 * 700).reshape([1000, 700])
In [35]: c = np.empty([b.shape[0], a.shape[0]])
In [36]: for i in range(b.shape[0]):
...: c[i] = np.argsort(np.linalg.norm(a - b[i], axis=1))
...:
Редактировать:
Я считаю, что должно работать следующее:
d = np.argsort(np.linalg.norm(a[:, None] - b, axis=2), axis=1)
Но я получаю MemoryError
за a[:, None] - b
.Я в правильном направлении?Что можно сделать относительно MemoryError
?