Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
add.at() method
#1
import numpy as np 
x = np.zeros(10)
np.add.at(x, i, 1)
print(x)
output
Output:
[0. 1. 1. 0. 1. 0. 0. 0. 1. 0.]
I just don't get how this at() method works. X becomes array that contains all zeroes. Then happens what?
Reply
#2
This is how at() method works in the above case
np.add.at(x,i,1)
Here x will be array with all zeros as known,
Then i will be indexing to the array x, suppose you have given i = range(0,5), then this considers x[0],x[1],x[2],x[3],x[4].. so i is used to provide index for the array you need to change. i can be tuple also.
As you have given 1 as third attribute ,it adds one to the above indexes..

suppose your code was like this
import numpy as np
x = np.zeros(10)
i = range(0,5)
np.add.at(x, i, 1)
print(x)

output:
[1. 1. 1. 1. 1. 0. 0. 0. 0. 0.]
there fore adding one to all the indexes you have defined

#np.add.at(x, [0,2,3,4], 1) giving i as tuple is also fine
output for this will be as [1. 0. 1. 1. 1. 0. 0. 0. 0. 0.]
Reply
#3
@KavyaL please use proper code tags while posting
pyzyx3qwerty
"The greatest glory in living lies not in never falling, but in rising every time we fall." - Nelson Mandela
Need help on the forum? Visit help @ python forum
For learning more and more about python, visit Python docs
Reply
#4
import numpy as np
x = np.zeros(10)
i = range(0,5)
np.add.at(x, i, 1)
print(x)
Output:
[1. 1. 1. 1. 1. 0. 0. 0. 0. 0.]
Here x will be array with all zeros as known,
Then i will be indexing to the array x, suppose you have given i = range(0,5), then this considers x[0],x[1],x[2],x[3],x[4].. so i is used to provide index for the array you need to change. i can be tuple also.
As you have given 1 as third attribute ,it adds one to the above indexes..
Reply
#5
KavyaL, thank you for your explanation. I understand it perfectly. In my example, i is not defined. That's the mistake.
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020