【发布时间】:2025-11-23 10:40:01
【问题描述】:
我有一个 3-d Numpy 数组 flow 如下:
flow = np.random.uniform(low=-1.0, high=1.0, size=(720,1280,2))
# Suppose flow[0] are x-coordinates. flow[1] are y-coordinates.
需要计算每个 x,y 点的角度。以下是我的实现方式:
def calcAngle(a):
assert(len(a) == 2)
(x, y) = a
# angle_deg = 0
angle_deg = np.angle(x + y * 1j, deg=True)
return angle_deg
fangle = np.apply_along_axis(calcAngle, axis=2, arr=flow)
# The above statement takes 14.0389318466 to execute
每个点的角度计算需要14.0389318466 seconds 在我的 Macbook Pro 上执行。
有没有一种方法可以加快速度,可能是通过使用一些矩阵运算,而不是一次处理每个像素。
【问题讨论】:
标签: python performance numpy scipy vectorization