我有一个代码,在一个
for
循环内生成了两个numpy数组(data_transform
)。第一次循环生成一个numpy数组(40,2)
,第二次循环生成一个numpy数组(175,2)
。我想把这两个数组合并成一个,得到一个(215,2)
的数组。我尝试使用np.concatenate
和np.append
,但由于数组大小必须相同,所以它给我返回了一个错误。以下是我编写代码的示例:result_arr = np.array([])
for label in labels_set:
data = [index for index, value in enumerate(labels_list) if value == label]
for i in data:
sub_corpus.append(corpus[i])
data_sub_tfidf = vec.fit_transform(sub_corpus)
data_transform = pca.fit_transform(data_sub_tfidf)
#Append array
sub_corpus = []
我也使用过 np.row_stack
,但没有其他方法给我一个值为(175, 2)
的数组,这是我想要连接的第二个数组。
result_arr
,为什么?然后在循环中又重新赋值了它-但没有将其作为row_stack
的参数使用。您是在尝试模仿列表“追加”循环吗? - hpauljalist.append(x)
在alist
上进行原地操作。np.row_stack(data_transform)
返回一个新的数组。它不使用或操作result_arr
,在该表达式中根本没有出现。result_arr=...
步骤只是用新值替换了先前的值。这个语法与列表代码完全不同。 - hpauljnumpy
执行alist.append()
的操作。 - Luis Miguelconcatenate
(以及堆栈变体)对此非常挑剔。 - hpaulj