2013-08-30 33 views
0

我是一個Python新手(一般編程),想知道有人能幫我解決這個問題嗎?用重複的號碼製作n個矩陣

我想使用n(1×4)矩陣,其中第一個是:

[1,2,3,4], 

和未來的人

[3,4,5,6], 

[5,6,7,8], 

[7,8,9,10] 

等..

n=70 

我已經試過這個目前爲止,但我只得到第一個1和2的權利,然後它重複!

L2G = np.zeros((70,1,4)) 
for i in range(70): 
    L2G[i,:,:] = [1,2,3,4] 
    if L2G[i,0,0] == L2G[i-1,0,0]: 
     L2G[i,:,:] += 2 
+2

「任何聰明的代碼plz?」 - StackOverflow不是免費的代碼服務。你有嘗試過什麼嗎? – user2357112

+1

到目前爲止你有嘗試過什麼嗎?如果您繼續依賴其他人的免費代碼,您將無法學習如何有效編程。 – streppel

+0

「StackOverflow不是免費的代碼服務!」是的,我知道這不是一個免費的「代碼超級」,我忘了提及我一直在嘗試幾件事情,但我對這個新的發佈一些愚蠢的代碼,是遠離!無論如何,我試圖先讓list =零((70,1,4))#然後爲每個圖層分配數字。但後來我被卡住了! – user2734012

回答

0

一種可能性:

>>> n = 4 
>>> result = np.arange(1,5) + 2*np.arange(n)[:,None] 
>>> result 
array([[ 1, 2, 3, 4], 
     [ 3, 4, 5, 6], 
     [ 5, 6, 7, 8], 
     [ 7, 8, 9, 10]]) 

這工作,因爲如何numpybroadcasting的行爲的。可以將一維陣列

>>> np.arange(1,4+1) 
array([1, 2, 3, 4]) 

添加到2-d陣列

>>> 2*np.arange(n)[:,None] 
array([[0], 
     [2], 
     [4], 
     [6]]) 

,以產生期望的結果。

但請注意,這是一個對象,像你L2G,不n單獨的對象,並且是一個array,而不是matrix

+0

非常感謝!這是我想要的。乾杯! – user2734012