Numpy (Numeric Python)

Numpy, Numeric Python logo
 NumPy is the fundamental package for scientific computing with Python. It contains among other things:
  • a powerful N-dimensional array object
  • sophisticated (broadcasting) functions
  • tools for integrating C/C++ and Fortran code
  • useful linear algebra, Fourier transform, and random number capabilities
  • Numeric Python 
  • Alternative to Python List: Numpy Array
  • Calculations over entire arrays 
  • Easy and Fast 
  • Installation ● In the terminal: pip3 install numpy
  • or python3 -m pip install numpy

Introduction

In [6]: import numpy as np
In [7]: np_height = np.array(height)
In [8]: np_height
Out[8]: array([ 1.73, 1.68, 1.71, 1.89, 1.79])
In [9]: np_weight = np.array(weight)
In [10]: np_weight
Out[10]: array([ 65.4, 59.2, 63.6, 88.4, 68.7])
In [11]: bmi = np_weight / np_height ** 2
In [12]: bmi
Out[12]: array([ 21.852, 20.975, 21.75 , 24.747, 21.441])

First we imported the numpy package as np
then, we created a new numpy array using "np.array(LIST_NAME)"

Element Wise Calculation

In [6]: import numpy as np
In [7]: np_height = np.array(height)
In [8]: np_height
Out[8]: array([ 1.73, 1.68, 1.71, 1.89, 1.79])
In [9]: np_weight = np.array(weight)
In [10]: np_weight
Out[10]: array([ 65.4, 59.2, 63.6, 88.4, 68.7])
In [11]: bmi = np_weight / np_height ** 2
In [12]: bmi
Out[12]: array([ 21.852, 20.975, 21.75 , 24.747, 21.441])
#= 65.5/1.73 ** 2

Unlike normal lists in python or arrays in C++/JAVA , numpy arrays don't require indexing for complete list operation , They can be done directly as in line 11.

Comparision

In [13]: height = [1.73, 1.68, 1.71, 1.89, 1.79]
In [14]: weight = [65.4, 59.2, 63.6, 88.4, 68.7]
In [15]: weight / height ** 2
TypeError: unsupported operand type(s) for **: 'list' and 'int'
In [16]: np_height = np.array(height)
In [17]: np_weight = np.array(weight)
In [18]: np_weight / np_height ** 2
Out[18]: array([ 21.852, 20.975, 21.75 , 24.747, 21.441])


Numpy: Remarks

  • Numpy arrays: contain only one type
  • Different types: different behavior!
In [19]: np.array([1.0, "is", True])
Out[19]:
array(['1.0', 'is', 'True'],
 dtype=')
#Numpy arrays: contain only one type
#Different types: different behavior!
In [20]: python_list = [1, 2, 3]
In [21]: numpy_array = np.array([1, 2, 3])
In [22]: python_list + python_list
Out[22]: [1, 2, 3, 1, 2, 3]
In [23]: numpy_array + numpy_array
Out[23]: array([2, 4, 6])

Numpy Arrays can only store values of one datatype, if you insert more then one type values, then the complete array will be converted in the highest precise datatype, most of the time, it is string

Numpy Subsetting

you can with regular Python lists. When you want to get elements from your array, for
example, you can again use square brackets. Suppose you want to get the `bmi` for the
second person, so at index 1. This will od the trick:
Specifically for Numpy, there's also another way to do list subsetting: using an array
of booleans. Say you want to get all BMI values in the bmi array that are over 23. A first
step is using the greater than sign, like this:
The result is a Numpy array containing booleans: True if the corresponding bmi is above 23,
False if it's below. Next, you can use this boolean array inside square brackets to do
subsetting. Only the elements in `bmi` that are above 23, so for which the corresponding
boolean value is True, is selected. There's only one BMI that's above 23, so we end up
with a Numpy array with a single value, that BMI.
Using the result of a comparison to make a selection of your data is a very common way to get surprising insights
In [24]: bmi
Out[24]: array([ 21.852, 20.975, 21.75 , 24.747, 21.441])
In [25]: bmi[1]
Out[25]: 20.975
In [26]: bmi > 23
Out[26]: array([False, False, False, True, False], dtype=bool)
In [27]: bmi[bmi > 23]
Out[27]: array([ 24.747])

Popular posts from this blog

RTU B.Tech 4th semester Computer science Syllabus (Common to IT also)

[How to] install Remastersys on Unbuntu 14.04 [Linux] with GUI support

[How to] Connect an android device [using MTP] on Linux [Ubuntu 14.04 LTS] 100% working