I want to change the values of entries of my MxN matrix but I have which column I want for each row on a vector. I tried:

```
scores[:column_indices] = 0
```

but that sets everything to zero **instead** of for all row change column indicated by `column_indices`

to zero. I guess in python loops it would be:

```
for k,i in enumerate(column_indices):
scores[k,i] = 0
```

does someone know how to vectorize that code? I feel it should be easy but I’m having issues doing it.

Could you print the `column_indices`

?

Yes of course!

`tensor([ 6, 7, 9, ..., 8, 5, 6], device='cuda:0')`

Haha, sorry, didn’t see the `enumerate`

and thought `column_indices`

is two dimensional.

However, I didn’t come up with a faster solution.

1 Like

haha, no worries

perhaps this is not how numpy or matlab indices work and expected something out of the ordinary in pytorch…?

Well, there are some options like using `narrow`

or perhaps `scatter`

will also work.

However, I don’t know how to create the indices without a for loop, which makes my approaches slower than your loop.

1 Like