NumPy Crash Course


NumPy is a robust scientific computing library for use with the Python language.

Array Basics

One of the most common uses of NumPy is manipulating computational arrays.

The primary array structures are:

1-Dimensional(1D)

2-Dimensional(2D)

3-Dimensional(3D)

Array terminology to know:

Row = i

Column = j

Where:

Array Table
V j, j, j,
i [1, 2, 3]
i [4, 5, 6]
i [7, 8, 9]

Values(which we will call ‘V’) in the array can be accessed or referenced through the i‘th to the j‘th position.

So for a generic value, we can represent this as ‘V(i,j)’ or in the case of ‘5’ = V(1,1) assuming a 0-based indexing.

LOADING/SAVING ARRAYS:

Text Files:

np.savetxt("arrayname.txt", array, delimiter ="")

np.loadtxt("filepath/filename.txt", array)

Disk:

np.load("filepath/filename.npy")

np.save("filepath/filename.npy", array)

CREATING ARRAYS:

Creating an array is terribly simple:

1dim_array = np.array([5, 10, 15])

2dim_array = np.array([2, 4, 6],[8,10,12])

One way to create a 3-dimensional array is to generate an empty array as follows:

3dim_array =np.empty((2,2,2)) Which will create a 2x2x2 structure.

We can now expand our “i’th to the j’th” model to include a k’th position. Alternatively, (and more intuitive IMO), is simply thinking in terms of x, y, and z positions.

STARTING VALUES:

I illustrated how to create an empty array above, but what if you’d like to populate the array with non-empty values as placeholders?

You have options!

array = np.empty() - Empty

array = np.zeros() - All 0’s

array = np.ones() - All 1’s

array = np.random.random() - All Randoms

array = np.arange() All step-wise ranges

array = np.linspace() Values spaced evenly

ARRAY ATTRIBUTES:

It’s always helpful to probe your array for information. I’ve compiled a list of common selectors to investigate your structures.

array.dtype - Returns the Data Type

len(array) - Returns the array length

array.shape - Returns the array dims

array.size - Returns a count of values in the array

array.astype(dtype) - Changes array values from one data type to another

SORTING/COPYING:

There are a number of options to create copies and sort existing arrays.

Sorting:

array.sort() - Return a sorted array

array.sort(axis = value) - Return an array with elements in an axis sorted

Copying:

np.copy(array) - Generates a copy of the array

arrayCopyName = array.copy() - Generates a deep copy

NumPy Math Tool Kit

Arithmetic:

Addition
ArrayAddition = ArrayX + ArrayY
np.add(ArrayX, ArrayY)
Subtraction
ArraySubtration = ArrayX - ArrayY
np.subtraction(ArrayX, ArrayY)
Division
ArrayDivision = ArrayX/ArrayY
np.division(ArrayX, ArrayY)
Multiplication
ArrayMultiply = ArrayX*ArrayY
np.multiply(ArrayX, ArrayY)
Exponentiation
ArrayExp(ArrayX**ArrayY)
np.exp(ArrayX, ArrayY)
Square Root
np.sqrt(ArrayX)

Logarithms:

Logs
np.log(ArrayX) -> Natural Log
np.log10(ArrayX) -> Base-10 Log

Trig:

Trigonometry
np.sin()
np.cos()
np.tan()
np.arcsin()
np.arccos()
np.arctan()
np.hypot()
np.degrees()
np.radians()

Rounding:

Functions
np.trunc()
np.ceil()
np.floor()
np.around()
np.round_()
np.fix()

Misc:

Functions
array.sum()
array.min()
array.max()
array.cumsum()
array.mean()
array.median()
array.corrcoef()
np.std(array)

Array Manipulation

Addition or Removal of Elements

Functions
np.append()
np.insert()
np.delete()

Logic Assertions

Equalities

Functions
ArrayX == ArrayY
ArrayX > number
ArraYX < number
np.array_equal(ArrayX, ArrayY)

Accessing Array Content

Slicing

Functions
array[start:stop:step,column]
Written on November 3, 2017