meshgrid
- это просто способ создания двух массивов, которые могут индексироваться и транслироваться вместе. Например:
In [302]: x,y=np.meshgrid([1,2,3],[4,5,6],sparse=True)
In [303]: x
Out[303]: array([[1, 2, 3]])
In [304]: y
Out[304]:
array([[4],
[5],
[6]])
Один имеет форму (1,3), другой (3,1); вместе производят результат (3,3)
С добавлением (или другой двоичной математикой):
In [305]: x+y
Out[305]:
array([[5, 6, 7],
[6, 7, 8],
[7, 8, 9]])
В качестве индексов в 2d-массиве:
In [306]: arr = np.arange(1,101).reshape(10,10)
In [307]: arr[x,y]
Out[307]:
array([[15, 25, 35],
[16, 26, 36],
[17, 27, 37]])
Массив не может использоваться в качестве конечной точки среза:
In [310]: np.arange(10)[x: x+3]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-310-adcd5e98b614> in <module>
----> 1 np.arange(10)[x: x+3]
TypeError: only integer scalar arrays can be converted to a scalar index
Тот факт, что массив создается с помощью meshgrid
, не означает, что он имеет специальные свойства или может использоваться так, как любой другой массив может т.