用重复数构造n个矩阵

2024-09-29 23:16:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的新手(一般来说是编程),不知道是否有人能帮我解决这个问题?你知道吗

我想做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

Tags: in权利forif编程npzerosrange
1条回答
网友
1楼 · 发布于 2024-09-29 23:16:52

一种可能性:

>>> 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*np.arange(n)[:,None]
array([[0],
       [2],
       [4],
       [6]])

产生期望的结果。你知道吗

请注意,这是一个对象,与L2G类似,而不是n单独的对象,并且是array,而不是matrix。你知道吗

相关问题 更多 >

    热门问题