我希望按其列之一的值重新排列numpy数组。含义-
[[0, 0], [583, 0], [1166, 0], [1365, 0], [0, 583], [583, 583], [1166, 583], [1365, 583]]
至
[[[0, 0], [583, 0], [1166, 0], [1365, 0]],
[[0, 583], [583, 583], [1166, 583], [1365, 583]]]
我目前使用“硬编码”形状对其进行重塑,但我希望自动进行。
以下代码涵盖了第二行值数量可变的情况:
X = np.array([[0, 0], [583, 0], [1166, 0], [1365, 0], [0, 583], [583, 583], [1166, 583], [1365, 583],
[0, 1], [581, 1], [1166, 0], [1365, 0], [3, 1], [2, 583], [1166, 583], [1365, 1]])
out = []
vs = set(X[:,-1])
for v in vs:
idxs = X[:,-1] == v
out.append(np.sort(X[idxs],axis=0))
out = np.array(out)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句