In [1]:
import numpy as np
In [2]:
np.array([6, 28, 496, 8128])
Out[2]:
In [3]:
np.arange(6)
Out[3]:
In [4]:
np.zeros(4)
Out[4]:
In [5]:
np.ones((2, 3))
Out[5]:
In [6]:
np.empty(4)
Out[6]:
In [7]:
np.linspace(1, 2, 5)
Out[7]:
In [8]:
np.logspace(1, -1, 3)
Out[8]:
In [9]:
a = np.arange(4)
a
Out[9]:
In [10]:
a.shape = (2, 2)
a
Out[10]:
In [11]:
a = np.array([6, 28, 496, 8128])
a.dtype
Out[11]:
In [12]:
b = np.array([6, 28.0, 496, 8128])
b.dtype
Out[12]:
In [13]:
a = np.array([6, 28.0, 496, 8128],
dtype=np.int8)
a
Out[13]:
In [14]:
b = np.array([6, 28.0, 496, 8128],
dtype='f')
b
Out[14]:
In [15]:
np.array(['I will have length six', 'and so will I!'], dtype='S6')
Out[15]:
In [16]:
a = np.arange(8)
In [17]:
a[::-1]
Out[17]:
In [18]:
a[2:6]
Out[18]:
In [19]:
a[1::3]
Out[19]:
In [20]:
a = np.arange(16)
a.shape = (4, 4)
a
Out[20]:
In [21]:
a[::2, 1::2]
Out[21]:
In [22]:
a[1:3, 1:3]
Out[22]:
In [23]:
a[2::-1, :3]
Out[23]:
In [24]:
a = np.arange(6)
b = a[1::2]
b[1] = 42
a
Out[24]:
In [25]:
b.base is a
Out[25]:
In [26]:
a = np.arange(16)
b = np.array(a[1::11])
In [27]:
a = np.arange(6, dtype=np.int64)
a
Out[27]:
In [28]:
a.view('i4')
Out[28]:
In [29]:
a = np.arange(6)
a
Out[29]:
In [30]:
a - 1
Out[30]:
In [31]:
a + a
Out[31]:
In [32]:
2*a**2 + 3*a + 1
Out[32]:
In [33]:
a = np.arange(4)
a.shape = (2, 2)
a
Out[33]:
In [34]:
b = np.array([[42], [43]])
b
Out[34]:
In [35]:
a * b
Out[35]:
In [36]:
np.dot(a, b)
Out[36]:
In [37]:
np.array([[ 43],
[213]])
Out[37]:
In [38]:
a = np.arange(12)
a.shape = (4, 3)
a
Out[38]:
In [39]:
b = np.array([16, 17, 18])
b
Out[39]:
In [40]:
a + b
Out[40]:
In [41]:
a.shape = (3, 4)
a
Out[41]:
In [42]:
a + b
In [43]:
b.shape = (3, 1)
b
Out[43]:
In [44]:
a + b
Out[44]:
In [45]:
a = np.arange(6)
a.shape = (2, 3)
a
Out[45]:
In [46]:
b = np.array([2, 3])
b
Out[46]:
In [47]:
a - b
In [48]:
b[:, np.newaxis] - a
Out[48]:
In [49]:
b[(slice(None),) + 31* (np.newaxis,)] - a
Out[49]:
In [50]:
b[(slice(None),) + 30 * (np.newaxis,)] - a
Out[50]:
In [51]:
a = 2*np.arange(8)**2 + 1
a
Out[51]:
In [52]:
# pull out the fourth, last, and
# second indices
a[[3, -1, 1]]
Out[52]:
In [53]:
# pull out the Fibonacci sequence
fib = np.array([0, 1, 1, 2, 3, 5])
a[fib]
Out[53]:
In [54]:
# pull out a 2x2 array
a[[[[2, 7], [4, 2]]]]
Out[54]:
In [55]:
a = np.arange(16) - 8
a.shape = (4, 4)
a
Out[55]:
In [56]:
# pull out the third, last, and
# first columns
a[:, [2, -1, 0]]
Out[56]:
In [57]:
# pull out a Fibonacci sequence of
# rows for every other column, starting
# from the back
fib = np.array([0, 1, 1, 2, 3])
a[fib, ::-2]
Out[57]:
In [58]:
# get the diagonal with a range
i = np.arange(4)
a[i, i]
Out[58]:
In [59]:
# lower diagonal by subtracting one to
# part of the range
a[i[1:], i[1:] - 1]
Out[59]:
In [60]:
# upper diagonal by adding one to part
# of the range
a[i[:3], i[:3] + 1]
Out[60]:
In [61]:
# anti-diagonal by reversal
a[i, i[::-1]]
Out[61]:
In [62]:
# create an array
a = np.arange(9)
a.shape = (3,3)
a
Out[62]:
In [63]:
# create an all True mask
m = np.ones(3, dtype=bool)
m
Out[63]:
In [64]:
# take the diagonal
a[m, m]
Out[64]:
In [65]:
# create a mask
m = np.array([[1, 0, 1],
[False, True, False],
[0, 0, 1]], dtype=bool)
a[m]
Out[65]:
In [66]:
a < 5
Out[66]:
In [67]:
m = (a >= 7)
In [68]:
a[m]
Out[68]:
In [69]:
a[a < 5]
Out[69]:
In [70]:
np.array([0, 1, 2, 3, 4])
Out[70]:
In [71]:
a[(a < 5) | (a >= 7)]
Out[71]:
In [72]:
np.array([0, 1, 2, 3, 4, 7, 8])
Out[72]:
In [73]:
np.where(a < 5)
Out[73]:
In [74]:
a[np.where(a >= 7)]
Out[74]:
In [75]:
a[:, np.where(a < 2)[1]]
Out[75]:
In [76]:
# a simple flat dtype
fluid = np.dtype([
('x', int),
('y', np.int64),
('rho', 'f8'),
('vel', 'f8'),
])
# a dtype with a nested dtype
# and a subarray
particles = np.dtype([
('pos', [('x', int),
('y', int),
('z', int)]),
('mass', float),
('vel', 'f4', 3)
])
In [77]:
particles.names
Out[77]:
In [78]:
fluid.fields
Out[78]:
In [79]:
np.zeros(4, dtype=particles)
Out[79]:
In [80]:
# note that the rows are tuples
f = np.array([(42, 43, 6.0, 2.1),
(65, 66, 128.0, 3.7),
(127, 128, 3.0, 1.5)],
dtype=fluid)
f
Out[80]:
In [81]:
f[1]
Out[81]:
In [82]:
f[::2]
Out[82]:
In [83]:
f['rho']
Out[83]:
In [84]:
f[['vel', 'x', 'rho']]
Out[84]:
In [85]:
x = np.linspace(0.0, np.pi, 5)
In [86]:
np.sin(x)
Out[86]:
In [87]:
a = np.arange(9)
a.shape = (3, 3)
a
Out[87]:
In [88]:
np.sum(a)
Out[88]:
In [89]:
np.sum(a, axis=0)
Out[89]:
In [90]:
np.sum(a, axis=1)
Out[90]: