# Issue

This Content is from Stack Overflow. Question asked by zo Aoo

Suppose i already have a very large 2d matrix(like [10000,10000]) and i want to create a new matrix A(like [10000,10000,2]) such that A[i,j,:]=[i,j]
The intuitive way is as follows:

``````import numpy as np
c = np.zeros([10000,10000,2])
d1,d2 = c.shape[:2]
for i in range(d1):
for j in range(d2):
c[i,j,:] = (i,j)

# it's  time-consuming
``````

However, it’s time comsuming

I decide to use broadcast :

``````d = np.zeros([10000,10000,2])
d[:,:,0] = np.arange(10000).reshape(10000,1) + np.zeros(10000)
d[:,:,1] = np.arange(10000).reshape(1,10000) + np.zeros(10000).T
``````

It works.

But Is there any other way to do this?
I am newbee to deal with these kinds of large matrices, so I decided to look for some information about it.At first I thought it belongs to the fields of big data.Apparently,i am wrong.
Where can I find some information?

# Solution

Use `np.indices` and transpose:

``````>>> shape = 10, 10
>>> np.indices(shape, float).transpose(1, 2, 0)
array([[[0., 0.],
[0., 1.],
[0., 2.],
[0., 3.],
[0., 4.],
[0., 5.],
[0., 6.],
[0., 7.],
[0., 8.],
[0., 9.]],

[[1., 0.],
[1., 1.],
[1., 2.],
[1., 3.],
[1., 4.],
[1., 5.],
[1., 6.],
[1., 7.],
[1., 8.],
[1., 9.]],

[[2., 0.],
[2., 1.],
[2., 2.],
[2., 3.],
[2., 4.],
[2., 5.],
[2., 6.],
[2., 7.],
[2., 8.],
[2., 9.]],

[[3., 0.],
[3., 1.],
[3., 2.],
[3., 3.],
[3., 4.],
[3., 5.],
[3., 6.],
[3., 7.],
[3., 8.],
[3., 9.]],

[[4., 0.],
[4., 1.],
[4., 2.],
[4., 3.],
[4., 4.],
[4., 5.],
[4., 6.],
[4., 7.],
[4., 8.],
[4., 9.]],

[[5., 0.],
[5., 1.],
[5., 2.],
[5., 3.],
[5., 4.],
[5., 5.],
[5., 6.],
[5., 7.],
[5., 8.],
[5., 9.]],

[[6., 0.],
[6., 1.],
[6., 2.],
[6., 3.],
[6., 4.],
[6., 5.],
[6., 6.],
[6., 7.],
[6., 8.],
[6., 9.]],

[[7., 0.],
[7., 1.],
[7., 2.],
[7., 3.],
[7., 4.],
[7., 5.],
[7., 6.],
[7., 7.],
[7., 8.],
[7., 9.]],

[[8., 0.],
[8., 1.],
[8., 2.],
[8., 3.],
[8., 4.],
[8., 5.],
[8., 6.],
[8., 7.],
[8., 8.],
[8., 9.]],

[[9., 0.],
[9., 1.],
[9., 2.],
[9., 3.],
[9., 4.],
[9., 5.],
[9., 6.],
[9., 7.],
[9., 8.],
[9., 9.]]])
``````

``` This Question was asked in  StackOverflow by  zo Aoo and Answered by Mechanic Pig It is licensed under the terms of
CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.```