【发布时间】:2020-10-06 05:43:43
【问题描述】:
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的shape是(21000,784),data_train的shape是(2000,784)。当我运行这段代码时,它说:操作数不能与形状一起广播 (2000,784) (21000,784)
【问题讨论】:
-
您在这里的预期结果是什么? Numpy 将尝试按元素减去值,但由于形状不同,这是不可能的。也许这可以帮助:stackoverflow.com/questions/50758165/…
-
我的预期结果是这两个 NumPy 数组之间的距离
-
我明白了。一个简单的例子来说明这里的问题:如果你有
a = [1,2,3,4,5]和b = [1,2],然后尝试使用a-b,那么它不会起作用(在这种情况下应该减去哪个元素?)。如果形状相同,那么逐元素减法将起作用,例如:a=[1,2]、b=[1,2]、a-b=[0,0]。
标签: numpy numpy-ndarray array-broadcasting