【发布时间】:2015-04-09 11:41:46
【问题描述】:
我经常发现自己必须在二维数组中创建一条线(或某种其他形状)。换句话说,除了 y = mx + c 之外,数组的值在任何地方都为零。 (除此之外 - 这种方法的动机,而不是在一维数组中存储一条线,是我的工作通常需要二维傅里叶变换,因此我需要除线/形状/等之外的任何地方的零)。
我通常的做法如下:
array = numpy.zeros((height, width))
for i, line in enumerate(array):
for j, pixel in enumerate(line):
if j == m*i + c:
array[i,j] = 1
这很好用,但它并没有让我觉得特别像pythonic,而且当数组变大时它往往会变得很慢。所以,我的问题是一个相当笼统的问题 - 有人知道这样做的更好方法吗?
提前致谢!
【问题讨论】:
-
非常感谢您的建议 - 都给出了相同的结果,很高兴了解所有这些。我将 Oliver W. 标记为正确,纯粹基于可读性。再次感谢!
标签: python arrays performance numpy multidimensional-array