Sch*_*ind 3 python arrays loops numpy list-comprehension
我通过使用两个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
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下方法:
>>> np.flip(np.tril(np.ones((5,5)), k=-1), 1)
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.]])
Run Code Online (Sandbox Code Playgroud)
np.ones创建一个1s 数组,
np.tril创建一个较低的三角形数组
np.flip水平翻转数组
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |