此数组有6列。
u = np.array([[1, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 1, 0],
[0, 0, 1, 1, 0, 0],
[0, 0, 0, 1, 0, 0]])
字符串
我正在寻找一种方法,使每个矩阵列有一个单一的1值。第一列和第五列满足我的条件,因为它们只有一个值1。
因此,该过程可以使用随机来删除一些1,例如在具有两个1的第三列和具有3个1的第四列中。第二栏和第六栏没有变化。
在某些列中随机删除1后,我的预期结果可能如下所示:
u = np.array ([[1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0],
[0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0]])
型
有人能告诉我如何实现这一点吗?
2条答案
按热度按时间lvjbypge1#
我想这就是你要找的:
字符串
pod7payv2#
可以使用cumsum来屏蔽每列中第一次出现的1。如果你想保留最后一个,你可以使用负步骤索引:
字符串
要只保留第一个,直接使用矩阵(不使用负步进):
型