Creating a grid type 3D data array from data points

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 2K views
Arman777
Insights Author
Gold Member
Messages
2,163
Reaction score
191
I have a 3 data column ##(X, Y, Z)## ranges from ##(min, max)##. For example,

##X = (0, 5)##, ##Y=(0, 3)##, ##Z=(0, 2)##. By using them I need to create a numpy array in the form of

##[(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 1, 0), (0, 1, 1), (0, 1, 2), (0, 2, 0)...]##

So in total there will be ##6 \times 4 \times 3 = 72## data points.

Is there a simple command to do this ?
 
Physics news on Phys.org
numpy arrays cannot hold tuples

If you want to create a 2D 72 x 3 numpy array similar to that there is no simple function*; this is a typical exercise for any aspiring coder.

* the np.indices, np.mgrid and np.ogrid functions do something similar, but I don't think there is anything that does exactly this.

Edit: I suppose you could view a list comprehension as a "simple command" (but the word "command" is not appropriate here):
Python:
np.array([[x, y, z] for x in range(6) for y in range(4) for z in range(3)])
 
Last edited:
Reply
  • Like
Likes   Reactions: Wrichik Basu