6.8. Array Operations¶
Mathematical operations can be completed using NumPy arrays.
6.8.1. Scalar Addition¶
Scalars can be added and subtracted from arrays and arrays can be added and subtracted from each other:
import numpy as np
a = np.array([1, 2, 3])
b = a + 2
print(b)
[3 4 5]
a = np.array([1, 2, 3])
b = np.array([2, 4, 6])
c = a + b
print(c)
[3 6 9]
6.8.2. Scalar Multiplication¶
NumPy arrays can be multiplied and divided by scalar integers and floats:
a = np.array([1,2,3])
b = 3*a
print(b)
[3 6 9]
a = np.array([10,20,30])
b = a/2
print(b)
[ 5. 10. 15.]
6.8.3. Array Multiplication¶
NumPy array can be multiplied by each other using matrix multiplication. These matrix multiplication methods include element-wise multiplication, the dot product, and the cross product.
6.8.3.1. Element-wise Multiplication¶
The standard multiplication sign in Python *
produces element-wise multiplication on NumPy arrays.
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
a * b
array([ 4, 10, 18])
6.8.3.2. Dot Product¶
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.dot(a,b)
32
6.8.3.3. Cross Product¶
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.cross(a, b)
array([-3, 6, -3])
6.8.4. Exponents and Logarithms¶
6.8.4.1. np.exp()¶
NumPy’s np.exp()
function produces element-wise \(e^x\) exponentiation.
a = np.array([1, 2, 3])
np.exp(a)
array([ 2.71828183, 7.3890561 , 20.08553692])
6.8.4.2. Logarithms¶
NumPy has three logarithmic functions.
np.log()
- natural logarithm (log base \(e\))np.log2()
- logarithm base 2np.log10()
- logarithm base 10
np.log(np.e)
1.0
np.log2(16)
4.0
np.log10(1000)
3.0
6.8.5. Trigonometry¶
NumPy also contains all of the standard trigonometry functions which operate on arrays.
np.sin()
- sinnp.cos()
- cosinenp.tan()
- tangentnp.asin()
- arc sinenp.acos()
- arc cosinenp.atan()
- arc tangentnp.hypot()
- given sides of a triangle, returns hypotenuse
import numpy as np
np.set_printoptions(4)
a = np.array([0, np.pi/4, np.pi/3, np.pi/2])
print(np.sin(a))
print(np.cos(a))
print(np.tan(a))
print(f"Sides 3 and 4, hypotenuse {np.hypot(3,4)}")
[0. 0.7071 0.866 1. ]
[1.0000e+00 7.0711e-01 5.0000e-01 6.1232e-17]
[0.0000e+00 1.0000e+00 1.7321e+00 1.6331e+16]
Sides 3 and 4, hypotenuse 5.0
NumPy contains functions to convert arrays of angles between degrees and radians.
deg2rad()
- convert from degrees to radiansrad2deg()
- convert from radians to degrees
a = np.array([np.pi,2*np.pi])
np.rad2deg(a)
array([180., 360.])
a = np.array([0,90, 180, 270])
np.deg2rad(a)
array([0. , 1.5708, 3.1416, 4.7124])