我有两个numpy数组,定义网格的x和y轴.例如:
x = numpy.array([1,2,3])
y = numpy.array([4,5])
Run Code Online (Sandbox Code Playgroud)
我想生成这些数组的笛卡尔积来生成:
array([[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]])
Run Code Online (Sandbox Code Playgroud)
在某种程度上,由于我需要在循环中多次执行此操作,因此效率不高.我假设将它们转换为Python列表并使用itertools.product并返回到numpy数组并不是最有效的形式.
在Python上,range(3)将返回[0,1,2].是否存在多维范围的等价物?
range((3,2)) # [(0,0),(0,1),(1,0),(1,1),(2,0),(2,1)]
Run Code Online (Sandbox Code Playgroud)
因此,例如,循环通过基于图块的游戏上的矩形区域的图块可以写为:
for x,y in range((3,2)):
Run Code Online (Sandbox Code Playgroud)
注意我不是要求实现.我想知道这是否是一个公认的模式,如果在Python或它的标准/公共库上有内置函数.