【发布时间】:2019-09-24 15:33:49
【问题描述】:
我有一个代码可以在for 循环中生成两个 numpy 数组 (data_transform)。在第一个循环中生成一个(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的参数。你是在模仿append循环列表吗? -
@hpaulj 我尝试创建一个空数组来填充它。我只想执行将值附加到
list时所做的操作。 -
坚持列表追加;不要试图用数组来模仿它。最后一步制作数组。
-
alist.append(x)在alist上就地运行。np.row_stack(data_transform)返回一个新数组。它不会使用或操作result_arr,它根本不会出现在该表达式中。result_arr=...步骤只是将先前的值替换为新值。语法与列表代码完全不同。 -
@hpaulj 我知道,但我想执行
alist.append()所做的操作,但使用numpy。