为什么arr [idx,:](对于2D数组)被认为是一种很好的方法论

时间:2018-03-17 07:56:55

标签: python arrays numpy


当数组为2D时,许多使用numpy的python片段都使用arr[idx,:]表示法。
e.g

gradPred = -outputVectors[target,:] * (1 - r_W_prob[target])
gradPred += np.dot(r_W_prob[negative_samples], outputVectors[negative_samples, :])

我有两个后续问题:
a)outputVectors[target,:]outputVectors[target]之间是否存在差异? b)如果存在差异,是否存在"首选方式"操作,还是依赖于上下文?
谢谢!

1 个答案:

答案 0 :(得分:4)

<强>可读性。

从语义上讲,这两个符号是2D数组的相同(它们都返回一维数组)。 但是outputVectors[target, :]使得更清晰数组是2D,返回的是1D。

如果outputVectors是1D,您可以使用outputVectors[target]返回一个标量(如果您注意到,那就是代码中的r_W_prob[target])。