-
Notifications
You must be signed in to change notification settings - Fork 265
/
diving-into-numpy-code-scipy2013-tutorial-part-8.json
29 lines (29 loc) · 3.36 KB
/
diving-into-numpy-code-scipy2013-tutorial-part-8.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
"alias": "video/2159/diving-into-numpy-code-scipy2013-tutorial-part-8",
"category": "SciPy 2013",
"copyright_text": "https://www.youtube.com/t/terms",
"description": "",
"duration": null,
"id": 2159,
"language": "eng",
"quality_notes": "",
"recorded": "2013-06-27",
"related_urls": [
"https://s3.amazonaws.com/scipy-2013/divingintonumpy/numpy-tuto.box"
],
"slug": "diving-into-numpy-code-scipy2013-tutorial-part-8",
"speakers": [],
"summary": "Presenters: David Cournapeau, Stefan Van der Walt\n\nDescription\n\nDo you want to contribute to NumPy but find the codebase daunting ? Do\nyou want to extend NumPy (e.g. adding support for decimal, or arbitrary\nprecision) ? Are you curious to understand how NumPy works at all ? Then\nthis tutorial is for you.\n\nThe goal of this tutorial is do dive into NumPy codebase, in particular\nthe core C implementation. You will learn how to build NumPy from\nsources, how some of the core concepts such as data types and ufuncs are\nimplemented at the C level and how it is hooked up to the Python\nruntime. You will also learn how to add a new ufunc and a new data type.\n\nDuring the tutorial, we will also have a look at various tools\n(unix-oriented) that can help tracking bugs or follow a particular numpy\nexpression from its python representation to its low-level\nimplementation.\n\nWhile a working knowledge of C and Python is required, we do not assume\na preliminary knowledge of the NumPy codebase. An understanding of\nPython C extensions is a plus, but not required either.\n\nOutline\n\nThe tutorial will be divided in 3 main sections:\n\nIntroduction: Why extending numpy in C ? (and perhaps more importantly,\nwhen you should not) being ready to develop on NumPy: building from\nsources, and building with different flags (optimisation and debug)\nSource code organisation: description of the numpy source tree and\nhigh-level description of what belongs where: core vs the rest,\ncore.multiarray, core.ufunc, scalar arrays and support libraries\n(npysort, npymath)\n\nThe main data structures around ndarray:\n\nthe arrayobject and data type descriptor, and how they relate to each\nother. exercise to add a simple array method to the array object dealing\nwith arbitrary array memory layout with iterators Adding a new dtype:\nAnatomy of the dtype: from a + a to a core C loop Simple example to wrap\na software implementation of quadruple precision (revised version of\nIEEE 754 software) The current set of planned hand-on tasks/exercises:\n\nbuilding from sources with debug symbols adding an array method to\ncompute a simple statistic (e.g. kurtosis) adding a new type to handle\nquadruple precision type Required Packages\n\nYou will need a working C compiler (gcc on unix/os x, Visual Studio 2008\non windows), and be familiar how to use it on your platform git if\npossible, gdb and cgdb on unix if possible: valgrind and kcachegrind for\nsupported platforms (linux) Vagrant VM available here:\nhttps://s3.amazonaws.com/scipy-2013/divingintonumpy/numpy-tuto.box (use\nvagrant 1.2.1, as 1.2.2 has a serious bug for sharing files)\n",
"tags": [
"Tech"
],
"thumbnail_url": "https://i1.ytimg.com/vi/33hJRdaQFgA/hqdefault.jpg",
"title": "Diving into NumPy Code, SciPy2013 Tutorial, Part 2 of 4",
"videos": [
{
"length": 0,
"type": "youtube",
"url": "https://www.youtube.com/watch?v=33hJRdaQFgA"
}
]
}