The easiest way to create an array is to pass a list to NumPy’s main utility to create arrays, np.array
:
a = np.array([1, 2, 3])
The array function will accept any Python sequence. Think of lists, sets, tuples, or even a range. The function accepts several optional keyword arguments, and we will discuss two of them here: copy
and dtype
.
The copy
argument states whether to make a copy of the input object. When copy is True
, any changes in the resulting array will not change the input object. However, if it is False
, changes in the array can change the input object.
When using lists to make arrays, NumPy will always copy the object regardless of the argument’s value; for example:
lst = [1, 2, 3] a = np.array(lst, copy=False) print(a) # array([1, 2, 3])
If we change the array, the list will stay the same since NumPy copied the values, despite our copy=False
argument:
a[0] = 0 print(lst) # [1, 2, 3]
Now we will create the same list but with another NumPy array as input:
a_in = np.array([1, 2, 3]) a = np.array(a_in, copy=False) a
Let’s see what happens if we change the resulting array:
a[0] = 0 print(a) # array([0,2,3]) print(a_in) # array([0,2,3])
Both arrays changed because we set the copy
option to False
.
You can test this for yourself using the following code crumb:
Change the copy
argument and see what happens!
Another commonly used argument is dtype
, indicating the data type of the elements of this array explicitly. In the next lesson, you will learn about the available data types. One of them, np.int16
, is the smallest available integer type, taking up way less space (just two bytes) than a regular Python integer.
Besides np.array
, several other functions are mostly thin wrappers around np.array
, but with some specific options. E.g.:
np.asarray(a)
will return the input without copying if the input is a compatible NumPy array (copy=False
)np.copy(a)
: the input is always copied (copy=True
)np.fromiter(iter, dtype)
: creates a new array from an iterable object. This function requires you to set a dtype
explicitly (a topic of the following lesson)Head over to the official documentation to learn about all the options and other array creation functions.