【发布时间】:2017-01-13 21:18:36
【问题描述】:
所以我只是想写一个简单的脚本来将 RBG 转换为 YUV,我最终得到了这样的结果:
rgb2yuv_matrix = np.array([[0.299, 0.587, 0.114], [-0.1473, -0.28886, 0.436],[0.615, -0.51499, 0.10001]])
for i in range(n_train):
for j in range(32):
for k in range(32):
# Note here that X_train[i, j, k] is a 3 element array
X_train[i,j,k] = np.dot(rgb2yuv_matrix, X_train[i,j,k])
我想知道是否有更好的方法来做到这一点,因为我知道三重循环效率非常低,但我不知道在 numpy 中是否有更好的方法。
【问题讨论】:
-
是的,因为这就是将 RGB 值转换为 YUV 值的方式
-
对不起,我忘了补充 X[i, j, k] 是一个 3 维向量(每种颜色一个)
-
在 NumPy 术语中,这意味着一个 3 elem 数组。因此,相应地进行了编辑。希望没关系。
标签: performance numpy vectorization array-broadcasting