In [3]:
%autosave 20
import numpy as np
In [12]:
a = np.array([1, 2, 3])
b = np.array([[1, 2, 3],
[4, 5, 6]])
c = a - 7.5
c.dtype
Out[12]:
In [13]:
a == 2
Out[13]:
In [14]:
np.sin(a)
Out[14]:
In [16]:
np.array_equal(np.sqrt(a), a**0.5)
Out[16]:
In [17]:
%timeit np.sqrt(a)
%timeit a**0.5
In [19]:
import timeit
timeit.timeit('1+2')
Out[19]:
In [20]:
np.lookfor('arct')
In [22]:
np.arctan(a)
Out[22]:
In [27]:
np.lookfor('sqrt')
In [44]:
print(np.sum(a))
print(np.prod(a))
print(np.std(a))
print(b)
c = np.arange(8).reshape(2, 2, 2)
print(c)
np.sum(c, axis=(0,1))
Out[44]:
In [50]:
a = np.arange(10)
a.reshape(-1, 2).mean(axis=1)
Out[50]:
In [53]:
a = np.arange(5)
b = np.arange(10).reshape(2, 5)
print(a)
print(b)
a + b
Out[53]:
In [54]:
a = np.arange(5)
b = np.arange(10).reshape(2, 6)
print(a)
print(b)
a + b
In [58]:
a = np.arange(5)
b = np.arange(10).reshape(5, 2)
print(a)
print(b)
np.array_equal(a.reshape(-1, 1) + b, a[:,np.newaxis] + b)
Out[58]:
In [73]:
a = np.arange(16).reshape((2,) * 4)
print(a[np.newaxis,...,0].shape)
Out[73]:
In [91]:
a = np.arange(16).reshape(4,4)
a[[2, 3], ::-1]
a[[2, 3], [1, 3]]
print(a[[(0, 1)], 3])
Out[91]:
In [92]:
a = np.arange(16).reshape(4,4)
idx = a % 3 == 0
a[idx]
Out[92]:
In [94]:
a = np.arange(16).reshape(4,4)
idx = [True, False, False, True]
a[idx, ::2]
Out[94]:
In [98]:
li = list(range(1024))
a = np.array(li)
% timeit [x**3 for x in li]
% timeit (a**3).tolist()
In [99]:
%%timeit
for i, x in enumerate(li):
if x % 2 == 0:
li[i] += 1
In [101]:
%timeit a[a % 2 == 0] += 1
In [105]:
a = np.arange(8).reshape(4, 2)
print(a)
for x in a:
print('x =', x)
len(a)
Out[105]:
In [108]:
for x in a.flat:
print(x)
a.flatten()
In [111]:
for idx, x in np.ndenumerate(a):
a[idx] += 1
print(idx, x, a[idx])
In [112]:
for i in np.ndindex((5, 3)):
print(i)
In [115]:
np.r_[0:5, [1, 2, 3], 0:1:11j]
Out[115]:
In [124]:
X, Y = np.mgrid[0:3, 0:4]
print(X, '\n', Y)
In [126]:
a = np.arange(5)
b = np.ones_like(a)
np.concatenate((a, b))
Out[126]:
In [131]:
a = np.arange(0, 4).reshape(2, 2)
b = np.arange(4, 8).reshape(2, 2)
c = np.arange(8, 12).reshape(2, 2)
print(a)
print(b)
print(c)
np.concatenate((a, b, c), axis=1)
# np.hstack()
# np.vstack()
Out[131]:
In [143]:
stack = np.stack((a, b, c), axis=-1)
np.array_equal(stack[...,2], c)
print(a)
print(b)
print(c)
stack
Out[143]:
In [146]:
r = np.r_[
0:5,
0:1:6j,
np.array([1,2,3]),
[5]*3
]
con = np.concatenate((
np.arange(5),
np.linspace(0, 1, 6),
np.array([1,2,3]),
np.full(3, 5),
))
print(r)
print(con)
In [149]:
a = np.linspace(0, 1, 10)
np.fft.fft(a)
Out[149]:
In [152]:
np.savetxt('a.dat', a)
a1 = np.loadtxt('a.dat')
a1
Out[152]:
In [161]:
np.rec.array(
{'x': [1,2,3], 'y': [0.5, 2.7, 3.1], 'z': ['a', 'b', 'c']}
)
In [184]:
a = np.array([(1.0, 2), (3.0, 4)],
dtype=[('x', float), ('1', int)])
a['x']
r = np.rec.array(a)
r.x
Out[184]:
In [189]:
a = np.arange(5)
ma = np.ma.masked_array(a, a % 2 == 0)
print(ma)
ma.sum()
Out[189]:
In [191]:
np.linalg.lstsq
In [193]:
np.poly
In [196]:
a = np.logspace(0, 1, 11) # == 10**np.linspace(0, 1, 11)
np.diff(a)
Out[196]:
In [198]:
np.gradient(a)
In [ ]: