假设我有一个指数列表:
np.array([1, 3, 2, 4])
如何创建以下矩阵,其中索引左侧的所有元素都是1,索引右侧的所有元素是0?
[[1, 1, 0, 0, 0, 0],
[1, 1, 1, 1, 0, 0],
[1, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 1, 0]]
1*(np.arange( 6 ) <= arr[:,None])
# array([[1, 1, 0, 0, 0, 0],
# [1, 1, 1, 1, 0, 0],
# [1, 1, 1, 0, 0, 0],
# [1, 1, 1, 1, 1, 0]])
这跨行广播6个元素的阵列,跨列广播索引的阵列。1*将布尔值转换为整数。