轉換

2017-10-09 41 views
-1

我想從3D陣列X,Y,Z和標量S.轉換

我們假設我有一個100x100x100三維數組轉換採樣率1.因此X = 100等等。

每個3D點都包含一個標量值。

前: 3D矩陣A

後: X,Y,Z,S

如何從3D陣列XYZ和Python中的標量轉換。

+0

它是一個Python的問題或數學嗎? –

回答

0

我很難理解爲什麼你想要4個輸出,當你有3個維度的開始。如果你的三維數組只包含S的值,那麼你的座標只是由索引定義的?

如果是這樣,你需要重塑你的3D陣列(重塑)https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html

A=np.zeros((2,3,4)) # I initialize it for me 
    A.shape    # I get its shape 
    B=A.reshape(A.shape[0]*A.shape[1]*A.shape[2],1) # B is now the same in 1D array 

現在,你必須找到一種方法,按照一維數組索引來獲取座標。你可以很容易地做到這一點,你只需要知道重塑的順序是什麼。像itertool這樣的工具可能會訣竅!

C=list(itertools.product(range(A.shape[0]),range(A.shape[1]),range(A.shape[2]))) 
    # Each element of coordinate are the three coordinates of the point. You can split it if you want 

的東西比100x100x100較小也許開始,這將是很難檢查它是否真的有效