Python 将数据从另一个数组填充到数组

Python 将数据从另一个数组填充到数组,python,arrays,loops,for-loop,Python,Arrays,Loops,For Loop,我试图用列表数据中想要的形状填充一个空数组。我使用for循环来实现这一点,但它只是读取第一个值并用它们填充整个数组 我想要的是每12个数字填充一次数组。例如: 清单:[1,2,3,…,24] 数组=[[1,2,…,12], [13,14,…,24]] 这是我的密码: SSTA_12_data = [] for i in range(0,len(SSTA_12)): SSTA_12_data.append(SSTA_12["ANOM1+2"][i]) np.shape(SSTA_12_

我试图用列表数据中想要的形状填充一个空数组。我使用for循环来实现这一点,但它只是读取第一个值并用它们填充整个数组

我想要的是每12个数字填充一次数组。例如:

清单:[1,2,3,…,24]

数组=[[1,2,…,12], [13,14,…,24]]

这是我的密码:

SSTA_12_data = []

for i in range(0,len(SSTA_12)):
    SSTA_12_data.append(SSTA_12["ANOM1+2"][i])

np.shape(SSTA_12_data)
(461,)

Prueba_a = np.empty(shape=(len(Años),12)) (Años has len 39)
Prueba_a[:] = np.nan


for i in range(0,39):
    for j in range(0,12):
        Prueba_a[i,j] = SSTA_12_data[j]
这就是我得到的:

array([[-0.17, -0.58, -1.31, -0.97, -0.23,  0.07,  0.87,  1.1 ,  1.44,
         2.12,  3.  ,  3.34],
       [-0.17, -0.58, -1.31, -0.97, -0.23,  0.07,  0.87,  1.1 ,  1.44,
         2.12,  3.  ,  3.34],
       [-0.17, -0.58, -1.31, -0.97, -0.23,  0.07,  0.87,  1.1 ,  1.44,
         2.12,  3.  ,  3.34],
       [-0.17, -0.58, -1.31, -0.97, -0.23,  0.07,  0.87,  1.1 ,  1.44,
         2.12,  3.  ,  3.34], ...]

如果你已经使用了NUMPY,你可以考虑使用整形。例如,如果

SSTA_12_data.shape
(120,)
,即一个1D numpy数组,则
SSTA_12_data.shape(-1,12))
的形状将是
(10,12)
。在代码中,您可以尝试使用:

SSTA_12_data = []

for i in range(0,len(SSTA_12)):
    SSTA_12_data.append(SSTA_12["ANOM1+2"][i])

padsize = 12 - (len(SSTA_12_data) % 12)
SSTA_12_data = np.array(SSTA_12_data)
Prueba_a = np.pad(SSTA_12_data, (0, padsize)).reshape((-1,12))

我已经试过了,但这是我得到的错误:ValueError:无法将大小为461的数组重塑为形状(12)您希望如何处理这种奇数端点?461不能被12整除我知道,这就是问题所在。这就是为什么我试着用for循环来完成它。数据每月更新一次,因此某些月份的数据将是奇数或偶数。然后您可以尝试填充端点。更新了答案