import numpy as np
from numpy.linalg import inv, solve
# Using dot function:
S = np.dot((np.dot(H, beta) - r).T,
np.dot(inv(np.dot(np.dot(H, V),
H.T)), np.dot(H, beta) - r))
Slide 13
Slide 13 text
@ matrix multiplication operator @
>>> S = (H @ beta - r).T @ \
inv(H @ V @ H.T) @ (H @ beta - r)
PEP 465
Slide 14
Slide 14 text
os.scandir()
PEP 471
Slide 15
Slide 15 text
yield from (python 3.4)
@asyncio.coroutine
def view(request):
data = yield from db_query(request.q)
more = yield from db_query(request.p)
return yield from render(data, more)
PEP 380
Slide 16
Slide 16 text
async and await
async def view(request):
data = await db_query(request.q)
more = await db_query(request.p)
return await render(data, more)
PEP 492
Slide 17
Slide 17 text
type annotations
def hello(name: str) -> str:
return "hello, {}".format(name)
PEP 484
Slide 18
Slide 18 text
type annotations
def hello(name: str) -> str:
return "hello, {}".format(name)
def greet(name):
print greeting(name)
PEP 484
types!
Slide 19
Slide 19 text
gradual typing
def hello(name: str) -> str:
return "hello, {}".format(name)
def greet(name):
print(greeting(name))
types!
no types!
PEP 484
Slide 20
Slide 20 text
import typing
from typing import List
def combine(input: List[str]) -> int:
return input.join()
PEP 484
Slide 21
Slide 21 text
much, much more!
PEP 461, 479…
• subprocess.run()
• collections.OrderedDict 4-100 times faster
• bytes % args, bytearray % args
• functools.lru_cache() 10-25x faster
• StopIteration handling inside generators better
• A new installer for Windows