On Thu, Nov 21, 2024 at 2:00 PM Slavin, Jonathan via NumPy-Discussion < numpy-discussion@python.org> wrote:
> Hi all, > > I was trying to use meshgrid with three arrays and got some odd results. > Here's a simple example: > xt = np.array([1,2,3,4]) > yt = np.array([6,7,8]) > zt = np.array([12,13]) > xxx,yyy,zzz = np.meshgrid(xt,yt,zt) > So I would expect that xxx[0,0,:] = array([1,2,3,4]) > instead I get xxx[0,0,:] = array([1,1]) and xxx[0,:,0] = array([1,2,3,4]) > also yyy[:,0,0] = array([6,7,8]), whereas I would expect yyy[0,:,0] = > array([6,7,8]) > So what's going on? This seems like a bug to me. > Any suggestions for getting what I wanted -- i.e. xxx.shape = (2,3,4), > with values as appropriate? > This is documented in the `Notes` section concerning the behavior with the default `indexing='xy'`, which is primarily for 2D arrays (and presumably following a convention from another language like MATLAB). In order to get the (2, 3, 4) arrays that you want, use `indexing='ij'` # Note the flipped order of inputs and outputs since you want the `zt` values across the first axis. zzz, yyy, xxx = np.meshgrid(zt, yt, xt, indexing='ij') -- Robert Kern
_______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com