如何连接向量以创建循环中的数组?

2024-04-19 04:05:42 发布

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

我有一个循环for,它在每次迭代中生成一个新的向量(100,)。所以代码循环就像

for i in range (10):
   for j in range (4):
     #Create a new vector (100,) 
     #Concatenate 4 vector together to make (400,) #400=4*10 
#Append the concatenation vectors (400,) in vertical to make (10,400) array

我期望的是生成一个(10,400)大小的矩阵,将这些循环中的向量连接起来

目前,我的解决方案是

   matrix_= np.empty([10,400])
    for i in range (10):
       vector_horz=[]
       for j in range (4):
         #Create a new vector (100,) 
         vector_rnd=#Random make a vector/list with size of (100,1)
         #Concatenate 4 vector together to make (400,) #400=4*10
         vector_horz.append(vector_rnd)
    #Append the concatenation vectors (400,) in vertical to make (10,400) array
       matrix_(:,i)=vector_horz

但是,它说我的大小matrixvector_horz不能赋值。你能给我另一个解决办法吗?你知道吗


Tags: thetoinnewformakecreaterange
1条回答
网友
1楼 · 发布于 2024-04-19 04:05:42

选项1
(建议)首先生成数据并在末尾创建一个数组:

data = []
for i in range(10):
    for j in range(4):
        temp_list = ... # random vector of 100 elements 
        data.extend(temp_list) 

arr = np.reshape(data, (10, 400))

选项2
或者,使用np.empty初始化空数组,并一次分配一个片:

arr = np.empty((10, 400))
for i in range(10):
    for j in range(4):
        temp_list = ...
        arr[i, j * 100 : (j + 1) * 100] = temp_list

相关问题 更多 >