ValueError: Expected 2D array, got 1D array instead , euclidean distance
Posted
技术标签:
【中文标题】ValueError: Expected 2D array, got 1D array instead , euclidean distance【英文标题】: 【发布时间】:2021-11-01 03:28:54 【问题描述】:我收到了(150, 4)
和 (4,)
如何计算欧式距离
from sklearn.metrics.pairwise import euclidean_distances
center_distances = np.array(euclidean_distances(X, middle_point))
我得到了这个错误
ValueError: Expected 2D array, got 1D array instead:
array=[5.84333333 3.05733333 3.758 1.19933333].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or
array.reshape(1, -1) if it contains a single sample.
【问题讨论】:
【参考方案1】:您需要将middle_point
广播成X
的形状。您可以通过在第一个轴上扩展一个维度来做到这一点。你可以这样做:
np.expand_dims
:
>>> np.expand_dims(middle_point, 1)`)
使用切片技巧和None
(相当于np.newaxis
):
>>> middle_point[None]
这允许将middle_point
广播到形状为(1, 4)
的数组。
因此,您会得到一个数组,其中包含 X
中的每个 150 个点与 middle_point
中的唯一点之间的距离:
>>> euclidean_distances(X, middle_point[None])
# shape (150, 1)
【讨论】:
以上是关于ValueError: Expected 2D array, got 1D array instead , euclidean distance的主要内容,如果未能解决你的问题,请参考以下文章
ValueError: Expected 2D array, got 1D array instead:
ValueError: Expected 2D array, got 1D array instead:
如何在 sklearn/python 中修复“ValueError: Expected 2D array, got 1D array”?
ValueError: Expected 2D array, got 1D array instead , euclidean distance
sklearn中报错ValueError: Expected 2D array, got 1D array instead:
添加层到 resnet[keras] 的顶部:ValueError: Input 0 is incompatible with layer conv2d_transpose_1: expected n