制作具有重复数字的n个矩阵

时间:2013-08-30 18:47:35

标签: python arrays list python-2.7

我是Python的新手(以及一般的编程)并想知道是否有人可以帮我解决这个问题?

我想制作n(1 * 4)个矩阵,其中第一个是:

[1,2,3,4], 

以及下一个

[3,4,5,6],  

[5,6,7,8], 

[7,8,9,10]

依旧......

n=70 

到目前为止我已经尝试了这个但是我只得到了第一个和第二个,然后它重复了!

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

1 个答案:

答案 0 :(得分: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]])

这是因为numpy broadcasting的行为方式。您可以添加一维数组

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

到二维数组

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

产生所需的结果。

请注意,这是一个对象,例如L2G,而不是n个单独的对象,并且是array,而不是matrix