Учитывая NumPy массив нулей, скажемКак заполнить Numpy массив нулей с единицами заданными индексами/координаты
arr = np.zeros((5, 5))
и массив индексов, которые представляют собой вершины многоугольника, скажем
verts = np.array([[0, 2], [2, 0], [2, 4]])
1) что такое элегантный способ сделать
for v in verts:
arr[v[0], v[1]] = 1
, что полученный массив
In [108]: arr
Out[108]:
array([[ 0., 0., 1., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 1., 0., 0., 0., 1.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
2) Как я могу заполнить массив из них таким образом, чтобы выходной массив
In [158]: arr
Out[158]:
array([[ 0., 0., 1., 0., 0.],
[ 0., 1., 1., 1., 0.],
[ 1., 1., 1., 1., 1.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
Не следует 'маска [2,0]' быть 1? – DSM
@DSM Я думаю, что это проблема с плавающей точкой - обходным путем является установка «радиуса» на небольшое положительное значение –