简而言之,我有一种在两个维度上迭代的毕达哥式方法,但因为它是大数字和多个数组,所以我想要tile_iter
的numpy
版本,而不是列表理解中的DUAL FOR循环.我希望它是与所示相同的值,但在相同形状的2D Numpy数组中(而不是仅使用np.array
包装转换当前数组-我试图避免列表理解)
以下是我目前所拥有的最小化、简化版本:
import numpy as np
x_cam_screen_range = np.linspace((6, 0), (18, 1), 3)
y_cam_screen_range = np.linspace((-3, 0), (3, 1), 3)
tile_iter = [(x, screen_x, y, screen_y)
for x, screen_x in x_cam_screen_range
for y, screen_y in y_cam_screen_range]
# current list response:
# [(6.0, 0.0, -3.0, 0.0),
# (6.0, 0.0, 0.0, 0.5),
# (6.0, 0.0, 3.0, 1.0),
# (12.0, 0.5, -3.0, 0.0),
# (12.0, 0.5, 0.0, 0.5),
# (12.0, 0.5, 3.0, 1.0),
# (18.0, 1.0, -3.0, 0.0),
# (18.0, 1.0, 0.0, 0.5),
# (18.0, 1.0, 3.0, 1.0)]
有没有办法让我以一种麻木友好的方式创建tile_iter
个?如果有一个现有的问题反映了这一点,我无论如何都找不到(但如果你能找到,我将不胜感激).