Home > Back-end >  Appending multiple lists containing numpy array in Python
Appending multiple lists containing numpy array in Python

Time:09-03

I want to append multiple lists containing a numpy array. I try with append but it doesn't append the two lists for different t. I present the current and expected outputs.

import numpy as np
N=2
arsigma=[]
for t in range(0,2):
    sigma=0.02109*t*np.ones((2*N*(N 1), 1))
    arsigma.append(sigma)
    arsigma=list(sigma)
    print("sigma =",[sigma])

The current output is

sigma = [array([[0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.]])]
sigma = [array([[0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109]])]

The expected output is

sigma=[array([[0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.]]), array([[0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109]])]

CodePudding user response:

Use list comprehension instead:

N = 2
arsigma = [0.02109*t*np.ones((2*N*(N 1), 1)) for t in range(2)]
  • Related