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