During programming, there will be instances when you will need to convert existing lists to arrays in order to perform certain operations on them [arrays enable mathematical operations to be performed on them in ways that lists do not].
Lists can be converted to arrays using the built-in functions in the Python numpy library.
numpy
provides us with two functions to use when converting a list into an array:
numpy.array[]
numpy.asarray[]
1. Using numpy.array[]
This function of the numpy
library takes a list as an argument and returns an array that contains all the elements of the list. See the example below:
import numpy as np
my_list = [2,4,6,8,10]
my_array = np.array[my_list]
# printing my_array
print my_array
# printing the type of my_array
print type[my_array]
2. Using numpy.asarray[]
This function calls the numpy.array[]
function inside itself. See the definition below:
def asarray[a, dtype=None, order=None]:
return array[a, dtype, copy=False, order=order]
The main difference between
np.array[]
andnp.asarray[]
is that thecopy
flag isfalse
in the case ofnp.asarray[]
, andtrue
[by default] in the case ofnp.array[]
.
This means that np.array[]
will make a copy of the object [by default] and convert that to an array, while np.asarray[]
will not.
The code below illustrates the usage of np.asarray[]
:
import numpy as np
my_list = [2,4,6,8,10]
my_array = np.asarray[my_list]
# printing my_array
print my_array
# printing the type of my_array
print type[my_array]
Copyright ©2022 Educative, Inc. All rights reserved
A list in Python is a linear data structure that can hold heterogeneous elements they do not require to be declared and are flexible to shrink and grow. On the other hand, an array is a data structure which can hold homogeneous elements, arrays are implemented in Python using the NumPy library. Arrays require less memory than list.
The
similarity between an array and a list is that the elements of both array and a list can be identified by its index value.
In Python lists can be converted to arrays by using two methods from the NumPy library:
- Using numpy.array[]
Python3
import
numpy
lst
=
[
1
,
7
,
0
,
6
,
2
,
5
,
6
]
arr
=
numpy.array[lst]
print
[
"List: "
, lst]
print
[
"Array: "
, arr]
Output:
List: [1, 7, 0, 6, 2, 5, 6] Array: [1 7 0 6 2 5 6]
- Using numpy.asarray[]
Python3
import
numpy
lst
=
[
1
,
7
,
0
,
6
,
2
,
5
,
6
]
arr
=
numpy.asarray[lst]
print
[
"List:"
, lst]
print
[
"Array: "
, arr]
Output:
List: [1, 7, 0, 6, 2, 5, 6] Array: [1 7 0 6 2 5 6]
The vital difference between the above two methods is that numpy.array[] will make a duplicate of the original object and numpy.asarray[] would mirror the changes in the original object. i.e :
When a copy of the array is made by using numpy.asarray[], the changes made in one array would be reflected in the other array also but doesn’t show the changes in the list by which if the array is made. However, this doesn’t happen with numpy.array[].
Python3
import
numpy
lst
=
[
1
,
7
,
0
,
6
,
2
,
5
,
6
]
arr
=
numpy.asarray[lst]
print
[
"List:"
, lst]
print
[
"arr: "
, arr]
arr1
=
numpy.asarray[arr]
print
[
"arr1: "
, arr1]
arr1[
3
]
=
23
print
[
"lst: "
, lst]
print
[
"arr: "
, arr]
print
[
"arr1: "
, arr1]
Output :
List: [1, 7, 0, 6, 2, 5, 6] arr: [1 7 0 6 2 5 6] arr1: [1 7 0 6 2 5 6] lst: [1, 7, 0, 6, 2, 5, 6] arr: [ 1 7 0 23 2 5 6] arr1: [ 1 7 0 23 2 5 6]
In “arr” and “arr1” the change is visible at index 3 but not in 1st.