我有一个矩阵
<?php
if ($result2->num_rows > 0) {
// output data of each row
while($row = $result2->fetch_assoc()) {
echo "<div class='form-group'>
<label>Name</label>
<input class='form-control' value='". $row["Name"] . "'>
</div>
<div class='form-group'>
<label>email</label>
<input class='form-control' value='". $row["email"] . "'>
</div>
<div class='form-group'>
<label>City</label>
<select class='form-control'>";
foreach($cities as $city){
echo "<option".(($city == $row["City"])?" selected":"").">". $city ."</option>";
}
echo "</select>
</div>";
}
}
?>
我看到这段代码获取k个最近邻居的索引:
a = np.array([[ 8.6569141 , 8.19847655, 7.83540289, 8.49673563],
[ 7.86962825, 9.16869072, 8.60084933, 8.91840291],
[ 9.61896688, 9.69620637, 9.1879124 , 9.87479709],
[ 9.17427532, 8.98877464, 8.4313078 , 7.81914999]])
输出:
k = 1
index = a.argsort()[:, :k]
有人可以提供有关这些输出指数的解释吗?
答案 0 :(得分:0)
NumPy的argsort
返回对数组进行排序的索引:
In [864]: a.argsort()
Out[864]:
array([[2, 1, 3, 0],
[0, 2, 3, 1],
[2, 0, 1, 3],
[3, 2, 1, 0]], dtype=int64)
此输出告诉您按升序排序的a
第一行元素的索引为2
,1
,3
和{{1 }}。第二行元素的索引是0
,0
,2
和3
,依此类推。
如果您定义了1
,k = 1
只是上面数组的第一列:
a.argsort()[:, :k]
因此,您的代码返回一个In [865]: a.argsort()[:, :k]
Out[865]:
array([[2],
[0],
[2],
[3]], dtype=int64)
数组,使得j th 元素包含索引(即列),其中j th <的最小值/ sup>数组4 × 1
的行,换句话说,是j th 训练样本的最近邻居的索引。