In [2]:
%matplotlib inline
from matplotlib import pyplot as plt
import seaborn as sns
In [3]:
import antipackage
from github.ellisonbg.misc import vizarray as va
In [4]:
import numpy as np
In [4]:
data = [0,2,4,6]
a = np.array(data)
In [5]:
type(a)
Out[5]:
In [6]:
a
Out[6]:
In [7]:
va.vizarray(a)
Out[7]:
In [8]:
a.shape
Out[8]:
In [9]:
a.ndim
Out[9]:
In [10]:
a.size
Out[10]:
In [11]:
a.nbytes
Out[11]:
In [12]:
a.dtype
Out[12]:
In [13]:
data = [[0.0,2.0,4.0,6.0],[1.0,3.0,5.0,7.0]]
b = np.array(data)
In [14]:
b
Out[14]:
In [15]:
va.vizarray(b)
Out[15]:
In [16]:
b.shape, b.ndim, b.size, b.nbytes
Out[16]:
In [17]:
c = np.arange(0.0,10.0,1.0)
c
Out[17]:
In [18]:
e = np.linspace(0.,5.,11)
e
Out[18]:
In [19]:
np.empty((4,4))
Out[19]:
In [20]:
np.zeros((3,3))
Out[20]:
In [21]:
np.ones((3,3))
Out[21]:
In [24]:
a = np.array([0,1,2,3])
In [25]:
a, a.dtype
Out[25]:
In [26]:
b = np.zeros((2,2), dtype=np.complex64)
b
Out[26]:
In [27]:
c = np.arange(0,10,2,dtype=np.float)
c
Out[27]:
In [29]:
d = c.astype(dtype=np.int)
d
Out[29]:
In [30]:
np.float*?
In [31]:
a = np.empty((3,3))
a.fill(0.1)
a
Out[31]:
In [33]:
b = np.ones((3,3))
b
Out[33]:
In [34]:
a + b
Out[34]:
In [35]:
b/a
Out[35]:
In [36]:
a**2
Out[36]:
In [37]:
np.pi*b
Out[37]:
In [41]:
a = np.random.rand(10,10)
In [42]:
va.enable()
In [43]:
a
Out[43]:
In [44]:
a[0,0]
Out[44]:
In [45]:
a[-1,-1] == a[9,9]
Out[45]:
In [47]:
a[:,0]
Out[47]:
In [48]:
a[-1,:]
Out[48]:
In [49]:
a[0:2,0:2]
Out[49]:
In [50]:
a[0:5,0:5] = 1.0
In [51]:
a
Out[51]:
In [52]:
va.disable()
In [53]:
ages = np.array([23,56,67,89,23,56,27,12,8,72])
genders = np.array(['m','m','f','f','m','f','m','m','m','f'])
In [54]:
ages > 30
Out[54]:
In [57]:
genders == 'm'
Out[57]:
In [58]:
(ages > 10) & (ages < 50)
Out[58]:
In [59]:
mask = (genders == 'f')
ages[mask]
Out[59]:
In [60]:
ages[ages>30]
Out[60]:
In [61]:
va.enable()
In [62]:
a = np.random.rand(3,4)
In [63]:
a
Out[63]:
In [64]:
a.T
Out[64]:
In [65]:
a.reshape(2,6)
Out[65]:
In [66]:
a.reshape(6,2)
Out[66]:
In [67]:
a.ravel()
Out[67]:
In [68]:
va.disable()
In [69]:
va.set_block_size(5)
va.enable()
In [70]:
t = np.linspace(0.0, 4*np.pi, 100)
t
Out[70]:
In [71]:
np.sin(t)
Out[71]:
In [72]:
np.exp(np.sqrt(t))
Out[72]:
In [73]:
va.disable
va.set_block_size(30)
In [78]:
plt.plot(t, np.exp(-0.1*t)*np.sin(t))
Out[78]:
In [ ]:
ages = np.array([23,56,67,89,23,56,27,12,8,72])
genders = np.array(['m','m','f','f','m','f','m','m','m','f'])
In [79]:
ages.min(), ages.max()
Out[79]:
In [80]:
ages.mean()
Out[80]:
In [81]:
ages.var(), ages.std()
Out[81]:
In [82]:
np.bincount(ages)
Out[82]:
In [83]:
va.disable()
In [84]:
np.bincount(ages)
Out[84]:
In [85]:
ages.cumsum()
Out[85]:
In [86]:
ages.cumprod()
Out[86]:
In [87]:
a = np.random.randint(0,10,(3,4))
a
Out[87]:
In [88]:
a.sum(axis=0)
Out[88]:
In [89]:
a.sum(axis=1)
Out[89]:
In [92]:
np.unique(genders)
Out[92]:
In [93]:
np.unique(genders, return_counts=True)
Out[93]:
In [94]:
np.where(ages>30, 0, 1)
Out[94]:
In [5]:
np.where(ages>30, 0)
In [6]:
a = np.random.rand(10)
a
Out[6]:
In [7]:
np.save('array1', a)
In [8]:
ls
In [10]:
%pycat array1.npy
In [11]:
a_copy = np.load('array1.npy')
In [12]:
a_copy
Out[12]:
In [13]:
b = np.random.randint(0,10,(5,3))
In [14]:
b
Out[14]:
In [15]:
np.savetxt('array2.txt', b)
In [16]:
ls
In [17]:
%pycat array2.txt
In [18]:
np.loadtxt('array2.txt')
Out[18]:
In [19]:
np.savez('arrays.npz', a=a, b=b)
In [20]:
a_and_b = np.load('arrays.npz')
In [21]:
a_and_b['a']
Out[21]:
In [22]:
a_and_b['b']
Out[22]:
In [23]:
a_and_b
Out[23]:
In [24]:
a = np.random.rand(5,5)
b = np.random.rand(5,5)
In [25]:
a*b
Out[25]:
In [26]:
np.dot(a,b)
Out[26]:
In [27]:
m1 = np.matrix(a)
m2 = np.matrix(b)
In [28]:
m1*m2
Out[28]:
In [29]:
np.linalg.det(a)
Out[29]:
In [30]:
np.linalg.inv(a)
Out[30]:
In [31]:
np.linalg.eigvals(a)
Out[31]:
In [32]:
c = np.random.rand(2000,2000)
In [33]:
%timeit -n1 -r1 evs = np.linalg.eigvals(c)
In [34]:
plt.hist(np.random.random(250))
plt.title('Uniform Random Distribution $[0,1]$')
plt.xlabel('value')
plt.ylabel('count')
Out[34]:
In [35]:
plt.hist(np.random.randn(250))
plt.title('Standard Noral Distribution')
plt.xlabel('value')
plt.ylabel('count')
Out[35]:
In [36]:
a = np.arange(0,10)
np.random.shuffle(a)
a
Out[36]:
In [37]:
a = np.arange(0,10)
print(np.random.permutation(a))
print(a)
In [ ]:
np.random.choice(['m','f'], 20, p=[0.25,0.])