# TIL: How to use NumPy

I’ve been trying to flesh out my Python knowledge and learn more about machine learning(ML) in the process. Most of my day-to-day Python use is focused on text manipulation, API calls, and JSON parsing, so leveling up on ML is more math (specifically stat-related) than I’m used to.

Today I played around with the NumPy Python package a bit and figured out some simple things.

For example, if I wanted to multiply the numbers in two lists with vanilla Python, like this:

```
a = [1, 2, 3, 4]
b = [4, 3, 2, 1]
print(a * b)
```

I’d get *TypeError: can’t multiply sequence by non-int of type ‘list’* . I’d have to write something to iterate through each list._

_

NumPy, on the other hand, can handle this like a champ. And this is probably the simplest thing you could use it for.

```
import numpy
a = [1, 2, 3, 4]
b = [4, 3, 2, 1]
new_a = numpy.array(a)
new_b = numpy.array(b)
print(new_a * new_b)
[4 6 6 4]
```

NumPy really shines when you start dealing with multidimensional lists and stat work.

```
numpy.vstack((new_a,new_b))
array([[1, 2, 3, 4],
[4, 3, 2, 1]])
```

And then it’s just turtles all the way down. You can slice intersections, calculate standard deviations, and so on. It’s a handy Python package that I knew literally nothing about prior today and a nice tool to add to the toolbox.