2014-12-22 79 views
1

我具有其中數據被存儲在按升序長121元件陣列和欲重塑成11×11矩陣,所以我使用NumPy的重塑命令陣列重塑不映射正確地numpy的meshgrid

Z = data.attributevalue[2,time,axial,:] 
Z = np.reshape(Z, (int(math.sqrt(datacount)), int(math.sqrt(datacount)))) 

這些數據應在笛卡爾平面導向,我創建了網格具有以下

x = np.arange(1.75, 12.5, 1) 
y = np.arange(1.75, 12.5, 1) 
X,Y = np.meshgrid(x, y) 

的問題是,是Z的行以錯誤的順序,因此矩陣的最後一行中的數據應該是第一個,反之亦然。我想重新排列,以便以正確的方式填充行。起始數組Z按以下方式裝配[數據點#1,數據點#2 ....,數據點#N]。數據點#1應該在左上角,最後一點在右下角。有沒有一個簡單的方法來完成這個,或者我必須做一個函數來改變行的順序?

我的情節聲明如下

surf = self.ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet, 
    linewidth=1, antialiased=True) 

*** UPDATE ****

我試圖填充初始陣列向後,仍然沒有運氣。我改變了軸的方向爲以下

y = np.arrange(12.5,1,-1) 

這種翻轉的數據,但我的軸標籤是錯誤的,所以它不是一個真正解決我的問題。有任何想法嗎?

+0

@OlehPrypin我更新了我的帖子是明確的,我的代碼工作,但它沒有這樣做我想要的。 – TheCodeNovice

回答

2

原始數組可能看起來不像1x121數組。以下代碼塊顯示瞭如何將數組從1x121重新整形爲11x11。

import numpy as np 
A = np.arange(1,122) 
print A 
print A.reshape((11,11)) 

給出:

[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121] 

[[ 1 2 3 4 5 6 7 8 9 10 11] 
[ 12 13 14 15 16 17 18 19 20 21 22] 
[ 23 24 25 26 27 28 29 30 31 32 33] 
[ 34 35 36 37 38 39 40 41 42 43 44] 
[ 45 46 47 48 49 50 51 52 53 54 55] 
[ 56 57 58 59 60 61 62 63 64 65 66] 
[ 67 68 69 70 71 72 73 74 75 76 77] 
[ 78 79 80 81 82 83 84 85 86 87 88] 
[ 89 90 91 92 93 94 95 96 97 98 99] 
[100 101 102 103 104 105 106 107 108 109 110] 
[111 112 113 114 115 116 117 118 119 120 121]] 
+0

我是否需要在安排命令中滑動。起始數據數組被組合爲[1,2,...],但我沒有得到如你所示的底部數組。感謝您的快速回復。 – TheCodeNovice