import numpy as np np.random.seed(0) ? def compute_reciprocals(values): output=np.empty(len(values)) for i in range(len(values)): output[i]=1.0/values[i] return output ? values=np.random.randint(1,10,size=5) compute_reciprocals(values)
Out[1]:
array([0.16666667, 1. , 0.25 , 0.25 , 0.125 ])
In [2]:
big_array=np.random.randint(1,100,size=1000000) %timeit compute_reciprocals(big_array)
1.65 s ± 3.44 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In [3]:
print(compute_reciprocals(values)) print(1.0/values)
[0.16666667 1. 0.25 0.25 0.125 ] [0.16666667 1. 0.25 0.25 0.125 ]
In [4]:
%timeit(1.0/big_array)
5.3 ms ± 126 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)
In [7]:
np.arange(5)/np.arange(1,6)
Out[7]:
array([0. , 0.5 , 0.66666667, 0.75 , 0.8 ])
In [8]:
x=np.arange(9).reshape(3,3) 2**x
Out[8]:
array([[ 1, 2, 4], [ 8, 16, 32], [ 64, 128, 256]], dtype=int32)
In [10]:
x=np.arange(4) x
Out[10]:
array([0, 1, 2, 3])
In [11]:
x+5
Out[11]:
array([5, 6, 7, 8])
In [12]:
x-5
Out[12]:
array([-5, -4, -3, -2])
In [13]:
x*2
Out[13]:
array([0, 2, 4, 6])
In [14]:
x/2
Out[14]:
array([0. , 0.5, 1. , 1.5])
In [15]:
x//2
Out[15]:
array([0, 0, 1, 1], dtype=int32)
In [16]:
-x
Out[16]:
array([ 0, -1, -2, -3])
In [17]:
x**2
Out[17]:
array([0, 1, 4, 9], dtype=int32)
In [18]:
x%2
Out[18]:
array([0, 1, 0, 1], dtype=int32)
In [19]:
-(0.5*x+1)**2
Out[19]:
array([-1. , -2.25, -4. , -6.25])
In [20]:
np.add(x,2)
Out[20]:
array([2, 3, 4, 5])
In [21]:
x=np.array([-2,-1,0,1,2]) abs(x)
Out[21]:
array([2, 1, 0, 1, 2])
In [22]:
np.absolute(x)
Out[22]:
array([2, 1, 0, 1, 2])
In [23]:
np.abs(x)
Out[23]:
array([2, 1, 0, 1, 2])
In [24]:
x=np.array([3-4j,4-3j,2+0j,0+1j]) np.abs(x)
Out[24]:
array([5., 5., 2., 1.])
In [26]:
theta=np.linspace(0,np.pi,3) theta
Out[26]:
array([0. , 1.57079633, 3.14159265])
In [27]:
np.sin(theta)
Out[27]:
array([0.0000000e+00, 1.0000000e+00, 1.2246468e-16])
In [28]:
np.cos(theta)
Out[28]:
array([ 1.000000e+00, 6.123234e-17, -1.000000e+00])
In [29]:
np.tan(theta)
Out[29]:
array([ 0.00000000e+00, 1.63312394e+16, -1.22464680e-16])
In [30]:
x=[-1,0,1] np.arcsin(x)
Out[30]:
array([-1.57079633, 0. , 1.57079633])
In [31]:
np.arccos(x)
Out[31]:
array([3.14159265, 1.57079633, 0. ])
In [32]:
np.arctan(x)
Out[32]:
array([-0.78539816, 0. , 0.78539816])
In [33]:
x=[1,2,3]
In [34]:
np.exp(x)
Out[34]:
array([ 2.71828183, 7.3890561 , 20.08553692])
In [35]:
np.exp2(x)
Out[35]:
array([2., 4., 8.])
In [36]:
np.power(3,x)
Out[36]:
array([ 3, 9, 27], dtype=int32)
In [37]:
x=[1,2,4,10]
In [38]:
np.log(x)
Out[38]:
array([0. , 0.69314718, 1.38629436, 2.30258509])
In [39]:
np.log2(x)
Out[39]:
array([0. , 1. , 2. , 3.32192809])
In [40]:
np.log10(x)
Out[40]:
array([0. , 0.30103 , 0.60205999, 1. ])
In [41]:
x=[0,0.001,0.01,0.1]
In [42]:
np.expm1(x)
Out[42]:
array([0. , 0.0010005 , 0.01005017, 0.10517092])
In [43]:
np.log1p(x)
Out[43]:
array([0. , 0.0009995 , 0.00995033, 0.09531018])
In [44]:
from scipy import special x=[1,5,10] special.gamma(x)
Out[44]:
array([1.0000e+00, 2.4000e+01, 3.6288e+05])
In [45]:
special.gammaln(x)
Out[45]:
array([ 0. , 3.17805383, 12.80182748])
In [47]:
special.beta(x,2)
Out[47]:
array([0.5 , 0.03333333, 0.00909091])
In [48]:
x=np.array([0,0.3,0.7,1.0]) special.erf(x)
Out[48]:
array([0. , 0.32862676, 0.67780119, 0.84270079])
In [49]:
special.erfc(x)
Out[49]:
array([1. , 0.67137324, 0.32219881, 0.15729921])
In [50]:
special.erfinv(x)
Out[50]:
array([0. , 0.27246271, 0.73286908, inf])
In [52]:
x=np.arange(5) y=np.empty(5) np.multiply(x,10,out=y)
Out[52]:
array([ 0., 10., 20., 30., 40.])
In [53]:
y=np.zeros(10) np.power(2,x,out=y[::2]) y
Out[53]:
array([ 1., 0., 2., 0., 4., 0., 8., 0., 16., 0.])
In [56]:
x=np.arange(1,6) np.add.reduce(x)
Out[56]:
15
In [57]:
np.multiply.reduce(x)
Out[57]:
120
In [58]:
np.add.accumulate(x)
Out[58]:
array([ 1, 3, 6, 10, 15], dtype=int32)
In [59]:
np.multiply.accumulate(x)
Out[59]:
array([ 1, 2, 6, 24, 120], dtype=int32)
In [60]:
x=np.arange(1,6) np.multiply.outer(x,x)
Out[60]:
array([[ 1, 2, 3, 4, 5], [ 2, 4, 6, 8, 10], [ 3, 6, 9, 12, 15], [ 4, 8, 12, 16, 20], [ 5, 10, 15, 20, 25]])