Access Array Elements
Array indexing is the same as accessing an array element.
You can access an array element by referring to its index number.
The indexes in NumPy arrays start with 0, meaning that the first element has index 0, and the second has index 1 etc.
Example
Get the first element from the following array:
import numpy as np
arr = np.array[[1, 2, 3, 4]]
print[arr[0]]
Try it Yourself »
Example
Get the second element from the following array.
import numpy as np
arr = np.array[[1, 2, 3, 4]]
print[arr[1]]
Try it Yourself »
Example
Get third and fourth elements from the following array and add them.
import numpy as np
arr = np.array[[1, 2, 3, 4]]
print[arr[2] + arr[3]]
Try it Yourself »
Access 2-D Arrays
To access elements from 2-D arrays we can use comma separated integers representing the dimension and the index of the element.
Think of 2-D arrays like a table with rows and columns, where the row represents the dimension and the index represents the column.
Example
Access the element on the first row, second column:
import numpy as np
arr = np.array[[[1,2,3,4,5], [6,7,8,9,10]]]
print['2nd element on 1st row: ', arr[0, 1]]
Try it Yourself »
Example
Access the element on the 2nd row, 5th column:
import numpy as np
arr = np.array[[[1,2,3,4,5], [6,7,8,9,10]]]
print['5th element on 2nd row: ', arr[1, 4]]
Try it Yourself »
Access 3-D Arrays
To access elements from 3-D arrays we can use comma separated integers representing the dimensions and the index of the element.
Example
Access the third element of the second array of the first array:
import numpy as np
arr = np.array[[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]]
print[arr[0, 1, 2]]
Try it Yourself »
Example Explained
arr[0, 1, 2]
prints the value 6
.
And this is why:
The first number represents
the first dimension, which contains two arrays:
[[1, 2, 3], [4, 5, 6]]
and:
[[7, 8, 9], [10, 11, 12]]
Since we selected 0
, we are left with the first array:
[[1, 2, 3], [4, 5, 6]]
The second number represents the second dimension, which also contains two arrays:
[1, 2, 3]
and:
[4, 5, 6]
Since we selected 1
, we are left with the second array:
[4, 5, 6]
The third number represents the third dimension, which contains three
values:
4
5
6
Since we selected 2
, we end up with the third value:
6
Negative Indexing
Use negative indexing to access an array from the end.
Example
Print the last element from the 2nd dim:
import numpy as np
arr = np.array[[[1,2,3,4,5], [6,7,8,9,10]]]
print['Last element from 2nd dim: ', arr[1, -1]]
Try it Yourself »
Test Yourself With Exercises
Exercise:
Insert the correct syntax for printing the first item in the array.
arr = np.array[[1, 2, 3, 4, 5]] print[arr]
Start the Exercise
An array is a collection of items stored at contiguous memory locations. The idea is to store multiple items of the same type together. This makes it easier to calculate the position of each element by simply adding an offset to a base value, i.e., the memory location of the first element of the array [generally denoted by the name of the array].
For simplicity, we can think of an array a fleet of stairs where on each step is placed a value [let’s say one of your friends]. Here, you
can identify the location of any of your friends by simply knowing the count of the step they are on. Array can be handled in Python by a module named array. They can be useful when we have to manipulate only a specific data type values. A user can treat lists as arrays. However, user cannot constraint the type of elements stored in a list. If you create arrays using the array module, all
elements of the array must be of the same type.
Creating a Array
Array in Python can be created by importing array module. array[data_type, value_list] is used to create an array with data type and value list specified in its arguments.
Python3
import
array as arr
a
=
arr.array[
'i'
, [
1
,
2
,
3
]]
print
[
"The new created array is : "
, end
=
" "
]
for
i
in
range
[
0
,
3
]:
print
[a[i], end
=
" "
]
print
[]
b
=
arr.array[
'd'
, [
2.5
,
3.2
,
3.3
]]
print
[
"The new created array is : "
, end
=
" "
]
for
i
in
range
[
0
,
3
]:
print
[b[i], end
=
" "
]
Output :
The new created array is : 1 2 3 The new created array is : 2.5 3.2 3.3
Complexities for Creation of Arrays:
Time Complexity: O[1]
Auxiliary Space: O[n]
Some of the data types are mentioned below which will help in creating an array of different data
types.
Adding Elements to a Array
Elements can be added to the Array by using built-in insert[] function. Insert is used to insert one or more data elements into an array. Based on the requirement, a new element can be added at the beginning, end, or any given index of array.
append[] is also used to add the value mentioned in its arguments at the end of the array.
Python3
import
array as arr
a
=
arr.array[
'i'
, [
1
,
2
,
3
]]
print
[
"Array before insertion : "
, end
=
" "
]
for
i
in
range
[
0
,
3
]:
print
[a[i], end
=
" "
]
print
[]
a.insert[
1
,
4
]
print
[
"Array after insertion : "
, end
=
" "
]
for
i
in
[a]:
print
[i, end
=
" "
]
print
[]
b
=
arr.array[
'd'
, [
2.5
,
3.2
,
3.3
]]
print
[
"Array before insertion : "
, end
=
" "
]
for
i
in
range
[
0
,
3
]:
print
[b[i], end
=
" "
]
print
[]
b.append[
4.4
]
print
[
"Array after insertion : "
, end
=
" "
]
for
i
in
[b]:
print
[i, end
=
" "
]
print
[]
Output :
Array before insertion : 1 2 3 Array after insertion : 1 4 2 3 Array before insertion : 2.5 3.2 3.3 Array after insertion : 2.5 3.2 3.3 4.4
Complexities for Adding elements to the Arrays:
Time Complexity: O[1]/O[n] [ O[1] – for inserting elements at the end of the array, O[n] – for inserting elements at the beginning of the array and to the full array
Auxiliary Space: O[1]
Accessing elements from the Array
In order to access the array items refer to the index number. Use the index operator [ ] to access an item in a array. The index must be an integer.
Python3
import
array as arr
a
=
arr.array[
'i'
, [
1
,
2
,
3
,
4
,
5
,
6
]]
print
[
"Access element is: "
, a[
0
]]
print
[
"Access element is: "
, a[
3
]]
b
=
arr.array[
'd'
, [
2.5
,
3.2
,
3.3
]]
print
[
"Access element is: "
, b[
1
]]
print
[
"Access element is: "
, b[
2
]]
Output :
Access element is: 1 Access element is: 4 Access element is: 3.2 Access element is: 3.3
Complexities for accessing elements in the Arrays:
Time Complexity: O[1]
Auxiliary Space: O[1]
Removing Elements from the Array
Elements can be removed from the array by using built-in remove[] function but an Error arises if element doesn’t exist in the set. Remove[] method only
removes one element at a time, to remove range of elements, iterator is used. pop[] function can also be used to remove and return an element from the array, but by default it removes only the last element of the array, to remove element from a specific position of the array, index of the element is passed as an argument to the pop[] method.
Note – Remove method in List will only remove the first
occurrence of the searched element.
Python3
import
array
arr
=
array.array[
'i'
, [
1
,
2
,
3
,
1
,
5
]]
print
[
"The new created array is : "
, end
=
""]
for
i
in
range
[
0
,
5
]:
print
[arr[i], end
=
" "
]
print
[
"\r"
]
print
[
"The popped element is : "
, end
=
""]
print
[arr.pop[
2
]]
print
[
"The array after popping is : "
, end
=
""]
for
i
in
range
[
0
,
4
]:
print
[arr[i], end
=
" "
]
print
[
"\r"
]
arr.remove[
1
]
print
[
"The array after removing is : "
, end
=
""]
for
i
in
range
[
0
,
3
]:
print
[arr[i], end
=
" "
]
Output:
The new created array is : 1 2 3 1 5 The popped element is : 3 The array after popping is : 1 2 1 5 The array after removing is : 2 1 5
Complexities for Removing elements in the Arrays:
Time Complexity: O[1]/O[n] [ O[1] – for removing elements at the end of the array, O[n] – for removing elements at the beginning of the array and to the full array
Auxiliary Space: O[1]
Slicing of a Array
In Python array, there are multiple ways to print the whole array with all the
elements, but to print a specific range of elements from the array, we use Slice operation. Slice operation is performed on array with the use of colon[:]. To print elements from beginning to a range use [:Index], to print elements from end use [:-Index], to print elements from specific Index till the end use [Index:], to print elements within a range, use [Start Index:End Index] and to print whole
List with the use of slicing operation, use [:]. Further, to print whole array in reverse order, use [::-1].
Python3
import
array as arr
l
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
]
a
=
arr.array[
'i'
, l]
print
[
"Initial Array: "
]
for
i
in
[a]:
print
[i, end
=
" "
]
Sliced_array
=
a[
3
:
8
]
print
[
"\nSlicing elements in a range 3-8: "
]
print
[Sliced_array]
Sliced_array
=
a[
5
:]
print
[
"\nElements sliced from 5th "
"element till the end: "
]
print
[Sliced_array]
Sliced_array
=
a[:]
print
[
"\nPrinting all elements using slice operation: "
]
print
[Sliced_array]
Output
Initial Array: 1 2 3 4 5 6 7 8 9 10 Slicing elements in a range 3-8: array['i', [4, 5, 6, 7, 8]] Elements sliced from 5th element till the end: array['i', [6, 7, 8, 9, 10]] Printing all elements using slice operation: array['i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
Searching element in a Array
In order to search an element in the array we use a python in-built index[] method. This function returns the index of the first occurrence of value mentioned in arguments.
Python3
import
array
arr
=
array.array[
'i'
, [
1
,
2
,
3
,
1
,
2
,
5
]]
print
[
"The new created array is : "
, end
=
""]
for
i
in
range
[
0
,
6
]:
print
[arr[i], end
=
" "
]
print
[
"\r"
]
print
[
"The index of 1st occurrence of 2 is : "
, end
=
""]
print
[arr.index[
2
]]
print
[
"The index of 1st occurrence of 1 is : "
, end
=
""]
print
[arr.index[
1
]]
Output:
The new created array is : 1 2 3 1 2 5 The index of 1st occurrence of 2 is : 1 The index of 1st occurrence of 1 is : 0
Complexities for searching elements in the Arrays:
Time Complexity: O[n]
Auxiliary Space: O[1]
Updating Elements in a Array
In order to update an element in the array we simply reassign a new value to the desired index
we want to update.
Python3
import
array
arr
=
array.array[
'i'
, [
1
,
2
,
3
,
1
,
2
,
5
]]
print
[
"Array before updation : "
, end
=
""]
for
i
in
range
[
0
,
6
]:
print
[arr[i], end
=
" "
]
print
[
"\r"
]
arr[
2
]
=
6
print
[
"Array after updation : "
, end
=
""]
for
i
in
range
[
0
,
6
]:
print
[arr[i], end
=
" "
]
print
[]
arr[
4
]
=
8
print
[
"Array after updation : "
, end
=
""]
for
i
in
range
[
0
,
6
]:
print
[arr[i], end
=
" "
]
Output:
Array before updation : 1 2 3 1 2 5 Array after updation : 1 2 6 1 2 5 Array after updation : 1 2 6 1 8 5
Complexities for updating elements in the Arrays:
Time Complexity: O[n]
Auxiliary Space: O[1]