我正在尝试向量化带有条件的嵌套循环。下面是我正在尝试做的一个小型虚拟程序。完整版本的代码将推动我的PC的内存限制(更多的嵌套循环和更复杂的条件条件),因此我希望也使用广播将内存使用率降至最低-即仅保留最终结果而不仅仅是大文件,其中某些元素标记为排除。
我想我需要'where'或掩码,但是问题是代码没有在两个数组上迭代。任何帮助将不胜感激。 :-)
#conventional python
import numpy as np
myList = []
count = 0
for a in range(5):
for b in range(5):
if a != b:
myList.append([a, b])
else:
count += 1
print(myList)
#attempt at vectorised numpy
a = np.arange(5).reshape(1,5)
b = np.arange(5)
output = np.where(a != b, [a,b])
print(output)