【发布时间】:2016-05-18 15:08:15
【问题描述】:
我只是想知道是否要使用本文(p5-6)中的算法将波长转换为(r,g,b)的程序:http://www.scientificbulletin.upb.ro/rev_docs_arhiva/full49129.pdf,而不是使用 if 检查波长的值- 其他喜欢
if wavelength>380 and wavelength<410:
# do something
elif wavelength<440:
# do something
elif wavelength<490:
# do something, and so on
是否有一些天才的方法可以避免使用 if-else 语句以便我可以加快代码速度?更具体地说,假设我将波长存储在列表或 numpy 数组中,是否可以使用某种“矢量化”方法来生成 (r,g,b) 值?
【问题讨论】:
-
什么是
wavelength?标量、列表、数组还是其他?do something对wavelength做了什么吗? -
波长是一个数字。最直接的方法是将它们作为标量。是否将它们存储在其他结构中可能有助于避免使用我所要求的这些 if else 语句。那些做某事是指链接中显示的计算,即为给定波长找到三个数字(r,g,b)。
标签: if-statement numpy optimization conditional vectorization