【发布时间】:2018-09-25 14:07:52
【问题描述】:
假设我有一个初始化为零的(4,10) 数组,并且我有一个[2,7,0,3] 形式的输入数组。输入数组将修改 zeros 矩阵,如下所示:
[[0,0,1,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,0,0],
[1,0,0,0,0,0,0,0,0,0],
[0,0,0,1,0,0,0,0,0,0]]
我知道我可以通过循环输入目标并使用 matrix[i][target in input target] 之类的东西索引矩阵数组来做到这一点,但我尝试在没有循环的情况下这样做:
matrix[:, input_target] = 1,但这会将整个矩阵设置为全 1。
显然,这样做的方法是:
matrix[range(input_target.shape[0]), input_target],问题是为什么它有效而不使用冒号?
谢谢!
【问题讨论】:
-
在您的冒号示例中,您选择的是指定列的每一行,而当您提供特定行时,只有那些被修改
标签: python arrays python-3.x numpy matrix