1.我有两个numpy数组,它们分别是data_test和data_train。
data_partial_test = data_test[:2000,:]
test_lable = label_test
print(test_lable.shape)
print(data_partial_test[0].shape)
print(data_train[0].shape)
dis = (( data_partial_test- data_train[:21000,])**2).sum(axis=1)
2. data_test为(21000,784),data_train为(2000,784)。当我运行这个代码时,它说:操作数不能与形状一起广播(2000,784) (21000,784)
发布于 2020-10-06 06:55:47
当您执行数组减法(如arr_1 - arr_2 )时,实际上是Numpy尝试:
只要两个数组具有相同的、相同的行数和列,此方案就能工作。
这一规则有三个例外:
所涉及的数组之一
。
阅读有关Numpy广播的更详细的观点。
在您的例子中,没有发生上述任何一个。这两个数组都有相同的列数,但行数是不同的。其结果是无法执行上述广播,整个操作失败。
可能的解决方案
也许第一个数组中的每一行(行数较少)可以与第二个数组中的一行“配对”,例如基于某个键字段。这种手术可以在潘达斯进行。参见Pandas中的联接方法。
然后你就可以:
F 243
然后你就可以:
https://stackoverflow.com/questions/64219992
复制相似问题