【发布时间】:2020-03-16 06:48:08
【问题描述】:
我通过使用两个 for 循环创建了一个对角线边缘的数组,但我想知道是否有更简单的方法可以做到这一点,例如使用列表推导:
im_diag = np.zeros((im_size, im_size), dtype=np.int8)
for x in range(im_size):
for y in range(im_size):
if x+y >= im_size:
im_diag[x,y] = 1
输出(im_size = 5):
>>> im_size
array([[0, 0, 0, 0, 0],
[0, 0, 0, 0, 1],
[0, 0, 0, 1, 1],
[0, 0, 1, 1, 1],
[0, 1, 1, 1, 1]], dtype=int8)
【问题讨论】:
标签: python numpy for-loop list-comprehension numpy-ndarray