我有一个如下的numpy数组,我想取n
行的随机样本。
([[996.924, 265.879, 191.655],
[996.924, 265.874, 191.655],
[996.925, 265.884, 191.655],
[997.294, 265.621, 192.224],
[997.294, 265.643, 192.225],
[997.304, 265.652, 192.223]], dtype=float32)
我试过了
rows_id = random.sample(range(0,arr.shape[1]-1), 1)
row = arr[rows_id, :]
但是这个9ndex掩码只返回一行,我想返回n
行作为numpy数组(没有重复)。
2条答案
按热度按时间efzxgjgh1#
你有三个关键问题:
arr.shape[1]
返回列数,而您需要的是行数--arr.shape[0]
。第二,range的第二个参数是独占的,因此实际上并不需要-1。第三,random.sample
的最后一个参数是行数,将其设置为1。一个更好的方法来完成您正在尝试的事情可能是
random.choices
。gg0vcinb2#
尝试
x
是原始数组的位置: