在Numpy中,我可以创建一个2D数组,如下所示:
arr = np.array([[0 for x in range(width)] for y in range(height)], dtype=np.uint8)
但是我也可以像这样创建相同的数组,这更快了,因为它避免了Python列表理解:
arr = np.zeros((height, width), dtype=np.uint8)
但是,假设我希望数组的内容具有依赖于x和y值的值。例如,我可以做这样的事情(其中f(x,y)
是我在其他地方定义的一些功能):
arr = np.array([[f(x, y) for x in range(width)] for y in range(height)], dtype=np.uint8)
但是这非常慢,并且具有我前面提到的相同问题。有没有一种方法可以创建具有类似于numpy.zeros的性能的数组,也许类似于:
arr = np.values(f(x,y), (height, width), dtype=np.uint8)
?