2014-02-12 114 views
0

有沒有一種更有效的方法,甚至是一種方法來加載一個2D numpy陣列data[n,m]到三個1D陣列X[n*m],Y[n*m]Z[n*m]比循環索引?我做的是:有沒有方法將二維數組加載到三個一維數組中?

n = len(data[:,0]) 
m = len(data[0,:]) 
X = zeros(n*m) 
Y = zeros(n*m) 
Z = zeros(n*m) 
c = 0 
for i in range(n): 
    for j in range(m): 
     X[c] = i 
     Y[c] = j 
     Z[c] = data[i,j] 
     c += 1 
+0

你能提供一個數組的例子嗎? – Ffisegydd

+0

你的X和Y陣列(列表?)不是一維的,他們仍然有「大小」n * m「 – Ffisegydd

+1

」加載二維數組「是什麼意思?你是什​​麼意思「數組」 - 「X」,「Y」和「Z」似乎是列表,但數據似乎是別的東西 - 也許是一個numpy數組? 「X」和「Y」似乎是相當無聊的空間廢料,其中有指數。 你需要更具體一些。如果你解釋了你實際希望完成的內容並顯示一些實際數據,這將有所幫助。 –

回答

2

如果你的代碼實際上做你想要的。這應該是等同的。

X,Y = np.indices(data.shape) 
Z = data.ravel() 
X = X.ravel() 
Y = Y.ravel() 
+3

ravel()而不是flatten(),除非你想複製 –

相關問題