2016-04-22 71 views
-2

矩陣如果我有兩個座標的表,說(A,B),並在每一個座標條目存在有一個值C.如:的Python:創建一組矢量座標的或從一個表多維

 B_1 B_2 B_3 ... 
A_1 C1 C2  C3 ... 
A_2 C4 etc ... ... 
A_3 ... 
... 

我需要的是將其轉換爲矩陣格式,理想情況下是[ [A_1, B_1], [A_1, B_2], ... ]形式的陣列陣列和每個[A,B]點的相應C值[ C1, C2, ]的一個陣列。

我需要這個的原因是因爲我實際上有一個3D(可能後來是4D)表,我需要這樣做,以便我可以對C值進行線性插值。

是否有任何包裝或方式在numpy或熊貓中做到這一點?

目前我在紙上有這張表,經歷所有點(A,B,C)和它們相關的值的排列是非常繁瑣的。將它作爲表格編寫起來更容易,然後在可能的情況下進行轉換。

謝謝。

+0

你看:http://docs.scipy.org /doc/scipy/reference/generated/scipy.interpolate.RegularGridInterpolator.html#scipy.interpolate.RegularGridInterpolator –

+0

謝謝,我不知道這件事。這就是我需要的。 –

回答

0

你的問題是安靜含糊。你想讓A和B成爲指向某個C的指標嗎?或者A和B本身帶有價值?

隨着在我身邊一些guesstimation,也許這將幫助:

import numpy as np 

# A values 
A = np.arange(0, 8) 
# B values 
B = np.arange(16, 24) 
# The corresponding C Values, where C[n, m] corresponds to A_n, B_m 
C = np.arange(8**2).reshape(8, 8) 

# Creating an 3x8x8 Array 
ABC = np.meshgrid(A, B) + [C,] 
ABC = np.array(ABC) 

print ABC 

你可能也想看看itertools.combinations

+0

感謝您的幫助。我的意思是創建兩個數組:一個所有可能的座標集(A_n,B_m)和一個與關聯的C [n,m]值。其實,我最終把我的表格變成了一個熊貓數據框,現在我看到了如何去做,它實際上對於一些for循環來說應該很簡單。 –

+0

其實我運行了你的代碼,是的,這正是我想用meshgrid函數做的事情。雖然我猜想我真正的問題是,我必須通過複製一些紙張來基本「手動」創建表格。 –

+0

_my真正的問題是,我不得不基本上'手動'創建table_Welp,不幸的是沒有模塊可以幫助解決這類問題;)但是,從文件加載NumPy數組很容易(無論是二進制還是純文本文本) – rikisa

相關問題