Numpy notes
From raju
numpy arrays as cells of a dataframe
>>> import numpy as np >>> import pandas as pd >>> x = np.array([2,3,1,0]); y = np.array([1,2,0,4]) >>> df = pd.DataFrame({'a':[x,y], 'tradeid':['usd','eur']}) >>> df a tradeid 0 [2, 3, 1, 0] usd 1 [1, 2, 0, 4] eur >>> df.set_index('tradeid') a tradeid usd [2, 3, 1, 0] eur [1, 2, 0, 4]
demonstrates | how to create a numpy array
tags | numpy array as element of a dataframe
convert list to numpy array
>>> import numpy as np >>> a = [2, -3, 4] >>> b = np.array(a) >>> a [2, -3, 4] >>> b array([ 2, -3, 4]) >>> type(a) <class 'list'> >>> type(b) <class 'numpy.ndarray'> >>> c = np.cumsum(b) >>> c array([ 2, -1, 3], dtype=int32) >>> type(c) <class 'numpy.ndarray'>
tested using Python 3.6.3
2-D arrays
In[34]: m = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) In[35]: m Out[36]: array([[1, 2, 3, 4], [5, 6, 7, 8]]) In[36]: m[0] Out[37]: array([1, 2, 3, 4]) In[37]: m[1] Out[38]: array([5, 6, 7, 8]) In[38]: m[1][2] Out[39]: 7
iterate over 2D arrays using map
$cat numpy_2d.py import numpy as np m = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]); n = np.array([[9, 10, 11, 12], [13, 14, 15, 16]]) print "m = \n", m, "\n" print "n = \n", n, "\n" def a(b,c): print "b = ", b, ", c = ", c map(a, m, n)
$python2 numpy_2d.py m = [[1 2 3 4] [5 6 7 8]] n = [[ 9 10 11 12] [13 14 15 16]] b = [1 2 3 4] , c = [ 9 10 11 12] b = [5 6 7 8] , c = [13 14 15 16]
random integers within a range
numpy.random.randint(low, high=None, size=None, dtype='l')
Return random integers from low (inclusive) to high (exclusive).
Ref:- https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.random.randint.html
check for numpy nan
Use np.isnan()
>>> import sys >>> print(sys.version) 3.8.1 (default, Mar 2 2020, 13:06:26) [MSC v.1916 64 bit (AMD64)] >>> import numpy as np >>> a = np.array([1, 2, 3, 4]) >>> np.average(a) 2.5 >>> np.isnan(np.average(a)) False >>> a = np.array([1, 2, np.nan, 3, 4]) >>> np.average(a) nan >>> np.isnan(np.average(a)) True
Note:- np.nan is not same as None. For example
>>> a = np.array([1, 2, np.nan, 3, 4]) >>> np.average(a) nan >>> np.isnan(np.average(a)) True >>> np.average(a) is None False >>> np.average(a) == None False