NumPy | put method
Start your free 7-days trial now!
Numpy's put(~)
sets a specific value in the input array. This is done in-place, that is, no new Numpy array is created.
Parameters
1. a
| array-like
The input array. All input arrays are treated as a flattened array.
2. ind
| array-like
The indices where the values will be set. Note that the indices apply to a flattened version of the input array. See examples below for clarification.
3. v
| array-like
The values to set. If v
is shorter than a
, then v
will be repeated to ensure the shape matches up.
4. mode
| string
| optional
Dictate what happens when ind
parameter you specify is out of bounds:
Value | Description |
---|---|
"raise" | Out of bounds error will be thrown. |
"wrap" | Cycles around the array. |
"clip" | Last element of the array is targeted. |
By default, mode="raise"
.
Return value
None
- the setting is done in-place.
Examples
Basic usage
a = np.array([5,6,7,8])np.put(a, 1, 9)a
array([5, 9, 7, 8])
2D arrays
Consider the following 2D array:
a = np.array([[5,6],[7,8]])a
array([[5, 6], [7, 8]])
Setting a single value
a = np.array([[5,6],[7,8]])a.put(3, 9)a
array([[5, 6], [7, 9]])
Setting multiple values
a = np.array([[5,6],[7,8]])np.put(a, [1,0], 9)a
array([[9, 9], [7, 8]])
Here, note how [1,0]
does not represent the 2nd row 1st column. Instead, it represents the 1st and 0th index of the flattened version of a
. Therefore, we could have equivalently used [0,1]
instead.
Different modes
Consider the following 2D array:
a = np.array([[5,6],[7,8]])a
array([[5, 6], [7, 8]])
Raise
a = np.array([[5,6],[7,8]])np.put(a, [5], 9, mode="raise")a
IndexError: index 5 is out of bounds for axis 0 with size 4
This error is raise because index 5 does not exist in the flattened array.
Wrap
a = np.array([[5,6],[7,8]])np.put(a, [5], 9, mode="wrap")a
array([[5, 9], [7, 8]])
Here, we went one cycle around a
, which has a size of 4, so the index 5 is converted to index 5-4=1.
Clip
a = np.array([[5,6],[7,8]])np.put(a, [5], 9, mode="clip")a
array([[5, 6], [7, 9]])
Here, our specified index has exceeded the bounds, so the last index is targeted instead, which in this case is index 3.